我有(很简单,我想)需要这样的情况:有许多配置文件,并且有许多合奏,每个配置文件必须能够成为一个或多个合奏的一部分。这是我的代码:
class Ensemble(models.Model):
ensembleName = models.CharField(max_length=200)
members = models.ManyToManyField('Profile', related_name='members')
def __str__(self):
return self.ensembleName
class Profile(models.Model):
ensemble = models.ForeignKey(Ensemble, on_delete=models.CASCADE, blank=True, null=True)
[...]
这一切都运作良好,但在一定程度上。从 Django 管理中,我可以从“合奏”页面中选择其成员。我还可以从“个人资料”页面中选择该个人资料所属的集合。问题是:它们没有同步:如果我通过“个人资料”页面将个人资料添加到合奏中,这不会反映在“合奏”页面中,反之亦然,即在“个人资料详细信息”页面中我没有”看不到我之前从“合奏”页面分配该配置文件的合奏。
我的表格
class ProfileUpdateForm(forms.ModelForm):
class Meta:
model = Profile
fields = ('image', 'role', 'skills', 'gender', etc...)
class EnsemblesForm(forms.ModelForm):
class Meta:
model = Ensemble
fields = ('ensemble_name',)
def __init__(self, *args, **kwargs):
super(EnsemblesForm, self).__init__(*args, **kwargs)
self.fields['ensemble_name'].queryset = (obj for obj in Ensemble.objects.all()) #This doesn't output anything