Django QuerySet объединяет четыре таблицы, включая ManyToMany? - PullRequest
0 голосов
/ 12 апреля 2011

Учитывая следующие модели, моя цель - создать QuerySet, который извлекает все доступные объекты Tag для данного идентификатора PostCategory. Я знаю, как написать это на SQL, но не могу понять, как это сделать с помощью Django ORM. Я полагаю, что следую лучшим рекомендациям, определяя отношения для объекта Post, а не для тега, но синтаксический шаблон QuerySet выглядит так, как будто я ожидал, что я начну с Tag.objects.filter (), но я не понимаю, как это сделать.

class Tag(models.Model):
    name = models.CharField(max_length=255)

class PostCategory(models.Model):
    name = models.CharField(max_length=100)    

class Post(models.Model):
    body_text = models.TextField()
    pub_date = models.DateTimeField()
    mod_date = models.DateTimeField(auto_now=True)
    title = models.CharField(max_length=255)
    subtitle = models.CharField(max_length=255) 
    is_featured = models.BooleanField()
    image = models.ImageField(upload_to='post_images')
    tags = models.ManyToManyField(Tag, null=True, blank=True)
    user = models.ForeignKey(User)
    category = models.ForeignKey(PostCategory)

1 Ответ

1 голос
/ 12 апреля 2011
tags = Tag.objects.filter(post__category_id=postcategory_id).distinct()
...