问题描述
我在Django 1.11中有这样的结构:
class Profile(models.Model):
username = models.CharField()
class Post(models.Model):
profile = models.ForeignKey(Profile)
hashtag = models.ManyToManyField(Hashtag)
class Hashtag(models.Model):
name = models.CharField()
现在这将创建中间表post_hashtag,但是如何使用 profile.hashtags.all()访问所有主题标签?
解决方法
您可以通过过滤器获取这些内容,例如:
Hashtag.objects.filter(post__profile=my_profile)
因此,例如,如果要将其作为属性添加到Profile
类中,则可以将其实现为:
class Profile(models.Model):
username = models.CharField()
@property
def hashtags(self):
return Hashtag.objects.filter(post__profile=self)