Django如何从db获取列表中的所有对象?

时间:2017-04-05 19:18:20

标签: python django django-models

我想使用“ArticleBlock”,它必须有一些“文章”

我写了下一个模型

class ArticleBlock(models.Model):
    class Meta:
        db_table = "articleblock"
    articleBlockName = models.CharField(max_length=50)


class Articles(models.Model):
    class Meta:
        db_table = "articles"
    articles_titel = models.CharField(max_length=50)
    articles_text = models.TextField()
    articles_date = models.DateTimeField()
    articles_main = models.ForeignKey(ArticleBlock)

第一个问题? 这是对的吗?如果我想将多篇文章绑定到一个块? 在view.py中我有下一个:

def article_theme(request, articleblock_id=2):
    return render_to_response('article_theme.html', 
   {"ArticleBlock_name": ArticleBlock.objects.get(id=articleblock_id), 
   'articles_list':list(Articles.objects.filter
   (articles_articleblock_id=articleblock_id))})

我希望获得带有文章的list(),以便对它们进行随机排序。 我如何从db获取列表?

1 个答案:

答案 0 :(得分:0)

1)是的,这是正确的 2)关于官方文档说明列表(Query对象)应该返回一个带有结果的列表,是不行的? https://docs.djangoproject.com/en/dev/ref/models/querysets/

只是一个建议我总是在发送到响应之前声明变量,如下所示:

def article_theme(request, articleblock_id=2):
    ArticleBlock_name = ArticleBlock.objects.get(id=articleblock_id)
    articles_list = list(Articles.objects.filter(articles_articleblock_id=articleblock_id))
    context = {
        "ArticleBlock_name": ArticleBlock_name, 
        "articles_list":articles_list
    }

    return render_to_response('article_theme.html', context)

为了更好的阅读。 注意:将变量放在上下文dict中不会更改模板中的访问名称,您仍然可以使用{{ArticleBlock_name}}

访问这些变量
相关问题