小编Sec*_*ter的帖子

在Django中按总和排序查询,但没有按预期获得结果

我正在尝试创建一个显示产品列表的Django站点,并按照他们收到的总票数对它们进行排序."产品"是一个类,"投票"是另一个类,其中一个名为score的字段可以是1,0或-1.我希望根据与每种特定产品相关的投票得分总和来订购产品.

这是我的models.py:

class Product(models.Model):
    Content = models.TextField()
    creation_date = models.DateTimeField( default=datetime.now )
    total_votes = models.IntegerField( default=0 )

    def __unicode__(self):
            return self.content

class Vote(models.Model):
        voter = models.ForeignKey( User )
        product = models.ForeignKey( Product )
        score = models.IntegerField( default=0, choices=VOTE_SCORE_CHOICES)
        def __unicode__(self):
                return '%s - %s : %s' % (self.product.id, self.voter, self.score)
Run Code Online (Sandbox Code Playgroud)

这是我的views.py:

def show_products( request):
        product_list = Product.objects.all()

        # set the field 'total_votes' in prduct to the sum of votes for each sentence
        for p in product_list:
                try:
                        v  = Vote.objects.filter( …
Run Code Online (Sandbox Code Playgroud)

django aggregate sum

8
推荐指数
1
解决办法
2701
查看次数

在Heroku上部署django app时,如何设置MEDIA_ROOT和MEDIA_URL

我已经使用他们的免费帐户在Heroku上部署了一个应用程序.

我在一个名为'media'的文件夹中有我的js和css文件.看起来这些通常都放在'静态'中,但是我在上面构建的项目已经将它们放在媒体中,所以我只是选择了它.

所以我有:

<link rel="stylesheet" type="text/css" media="screen" href="{{ MEDIA_URL }}css/style.css" />
Run Code Online (Sandbox Code Playgroud)

在我的settings.py文件中,我有:

abspath = lambda *p: os.path.abspath(os.path.join(*p))

PROJECT_ROOT = abspath(os.path.dirname(__file__))

MEDIA_ROOT = abspath(PROJECT_ROOT, 'media')
MEDIA_URL = '/media/'
Run Code Online (Sandbox Code Playgroud)

部署我的应用程序后,我设置:

DEBUG = False
Run Code Online (Sandbox Code Playgroud)

现在我的模板没有CSS渲染.我四处搜索,看起来像MEDIA_ROOT和MEDIA_URL的问题.我发现的大部分内容都是关于让静态文件在生产中工作,或者让媒体文件在开发中工作.这看起来像是让媒体文件在生产中工作.

我究竟应该将MEDIA_ROOT和MEDIA_URL设置为什么?

编辑:我应该指出我不会将任何内容上传到'media'文件夹.

python django heroku

2
推荐指数
1
解决办法
4646
查看次数

标签 统计

django ×2

aggregate ×1

heroku ×1

python ×1

sum ×1