如何解决具有 2 个级别的 Django ManyToMany 关系
How to solve Django ManyToMany relationship with 2 levels
我在 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()
现在这会创建中间 table post_hashtag,但是我如何使用 profile.hashtags.all() 访问所有主题标签?
您可以通过过滤器获取这些,例如:
Hashtag.objects.filter(<b>post__profile=<i>my_profile</i></b>)
因此,如果您想将其作为 属性 添加到 Profile
class 中,例如,您可以将其实现为:
class Profile(models.Model):
username = models.CharField()
@property
def <b>hashtags</b>(self):
return Hashtag.objects.filter(<b>post__profile=self</b>)
我在 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()
现在这会创建中间 table post_hashtag,但是我如何使用 profile.hashtags.all() 访问所有主题标签?
您可以通过过滤器获取这些,例如:
Hashtag.objects.filter(<b>post__profile=<i>my_profile</i></b>)
因此,如果您想将其作为 属性 添加到 Profile
class 中,例如,您可以将其实现为:
class Profile(models.Model):
username = models.CharField()
@property
def <b>hashtags</b>(self):
return Hashtag.objects.filter(<b>post__profile=self</b>)