Python 如何在django中将特定模型中的一行绑定到另一个模型中的字段
我对以下(简化版)型号有问题: 我进入管理界面,添加一个新的赞助商,它会自动显示在任何音乐会上,所有赞助商会显示在所有音乐会上。这不是我想要的,我想要一些赞助商参加一些音乐会 我意识到这是一个关系问题。 我试过:Python 如何在django中将特定模型中的一行绑定到另一个模型中的字段,python,django,database-design,many-to-many,foreign-key-relationship,Python,Django,Database Design,Many To Many,Foreign Key Relationship,我对以下(简化版)型号有问题: 我进入管理界面,添加一个新的赞助商,它会自动显示在任何音乐会上,所有赞助商会显示在所有音乐会上。这不是我想要的,我想要一些赞助商参加一些音乐会 我意识到这是一个关系问题。 我试过: Sponsor(models.Model): belongs_to = models.ForeignKey(Concerts) sponsor_name = models.CharField() Concerts(models.Model): artis
Sponsor(models.Model):
belongs_to = models.ForeignKey(Concerts)
sponsor_name = models.CharField()
Concerts(models.Model):
artist_name = models.CharField()
但是现在我不能重复使用赞助商,我必须为每场音乐会添加一个新的赞助商。如果您希望每场音乐会都有多个
赞助商,并且每个赞助商能够与多个音乐会关联,那么您将希望使用ManyToManyField
而不是外键
请参阅以下文档:
问题可能在于您如何显示赞助商——请确保在模板中打印音乐会时,您没有选择所有赞助商,而是在concert\u instance.shandor.all()上迭代。
queryset。如果您希望每场音乐会都有多个赞助商
,而每个赞助商
要能够与多个音乐会
关联,则您需要使用ManyToManyField
而不是外键
请参阅以下文档:
问题可能在于如何显示赞助商——请确保在模板中打印音乐会时,不是选择所有赞助商,而是迭代concert\u instance.shandor.all()
queryset.我认为您将可能的值与django管理界面中的Concert
模型中实际选择的赞助商的值弄错了
尝试此python manage.py shell
,然后从yourapp.yourmodel导入音乐会中尝试;Concerts.objects.shandor\u set.all()
。
结果应仅包含该模型的选定赞助商(我打赌您会看到空列表)。我认为您将可能的值与django管理界面中实际选择的赞助商的值弄错了
尝试此python manage.py shell
,然后从yourapp.yourmodel导入音乐会中尝试;Concerts.objects.shandor\u set.all()
。
结果应该只包含该模型的选定赞助商(我打赌你会看到空列表)。哦,是的,我看到了所有值,我必须突出显示我想要的值,然后保存,傻瓜。谢谢,是的,我看到了所有的价值观,我必须突出我想要的,然后保存,愚蠢的我。谢谢
Sponsor(models.Model):
belongs_to = models.ForeignKey(Concerts)
sponsor_name = models.CharField()
Concerts(models.Model):
artist_name = models.CharField()