根据Django类别获取数据

2024-09-28 16:59:28 发布

您现在位置:Python中文网/ 问答频道 /正文

(任何建议都将不胜感激)我有这样的文章范本

class Articles(models.Model):
    restaurant = models.ForeignKey(Restaurant, on_delete=models.CASCADE , blank=True, null=True)
    articlename = models.CharField(max_length=50, null=False, blank=False)
    price = models.DecimalField(max_digits=10, decimal_places=2)
    category = models.ForeignKey(Categories, on_delete=models.CASCADE , blank=True, null=True)

现在我想以一种类似“每个类别都有数据库中对象形式的所有文章”的形式获取数据

例如,我有两篇文章,第一篇是“Article 1 having cat1”,第二篇是“Article 2 having cat2”,现在我想得到这样的数据data:[ cat1:[{article1},{}] , cat2:[{article2}] ]在django有类似group by categories的东西吗??到目前为止,我已经尝试过这个代码

order_article = OrderArticle.objects.filter(order__order_number=id ,order__restaurant=restid) 
        samearticle=[]
        for order_obj in order_article:
            if : #will check if article having cat already been created
                category={}
                category[order_obj.article.category.name]=order_obj
                samearticle.append(order_obj.article.category.name)
            else:
                samearticle[order_obj.article.category.name].append(order_obj)

Tags: nametrueobjonmodelsarticle文章order
2条回答

&13; 第13部分,;
def index(request, category_slug=None):
    category = None
    categories = Category.objects.all()
    articles = Article.objects.all()
    if category_slug:
        category = get_object_or_404(Category, slug=category_slug)
        articles = articles.filter(category=categories)
    context = {
        'articles': articles,
        'categories': categories,
        'category': category,
    }
和#13;
和#13;

那么在你看来,

&13; 第13部分,;
{% regroup articles by category as articles_by_category %}
  {% for c in products_by_category %}
  
  {% endfor %}
和#13;
和#13;

假设您的类别模型有一个名称字段。 实际上,您可以使用related object reference遍历类别并获取所有相关文章

order_article_list = OrderArticle.objects.filter(order__order_number=id ,order__restaurant=restid) 
data = {}
for order_article in order_article_list:
  data[order_article.article.category.name] = order_article.article.category.articles_set.all()

相关问题 更多 >