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()