2

我有(很简单,我想)需要这样的情况:有许多配置文件,并且有许多合奏,每个配置文件必须能够成为一个或多个合奏的一部分。这是我的代码:

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
4

0 回答 0