Python 如何使用相关模型中的对象填充ModelForm中字段的初始值?

Python 如何使用相关模型中的对象填充ModelForm中字段的初始值?,python,django,django-models,django-forms,Python,Django,Django Models,Django Forms,我的问题是下面第五行(带所有问号的问题): 问题是我无法从志愿者语言(链接表)中检索对象,因为我需要将志愿者对象传递给它以对其进行过滤。我可以在save方法中执行此操作,但不能在第5行执行此操作。如果要向表单传递附加参数并使用该值设置字段,可以执行以下操作: class EditProfileForm(forms.ModelForm): def __init__(self, initial_volunteer, *args, **kwargs): super(E

我的问题是下面第五行(带所有问号的问题):


问题是我无法从志愿者语言(链接表)中检索对象,因为我需要将志愿者对象传递给它以对其进行过滤。我可以在save方法中执行此操作,但不能在第5行执行此操作。如果要向表单传递附加参数并使用该值设置字段,可以执行以下操作:

class EditProfileForm(forms.ModelForm):

    def __init__(self, initial_volunteer, *args, **kwargs):
            super(EditProfileForm, self).__init__(*args, **kwargs)
            self.fields['language'] = forms.ModelMultipleChoiceField(
            label=_(u'Language'), 
            queryset=Language.objects.all(),
            # now you have the value you passed to use here
            initial=VolunteerLanguage.objects.filter(volunteer=initial_volunteer)
            )

如果
中已有的
self.profile
是您想要使用的字段,您可以在
中创建字段,方法与我的示例相同,只是不要传递新值,而是使用
self.profile

中设置字段的初始值
\uuuuu init\uuuuu
是志愿者模型的一个实例,但我不确定如何访问EditProfileForm类顶部变量声明中的
\uuuuuuu init\uuuuu
中的变量集
class EditProfileForm(forms.ModelForm):

    def __init__(self, initial_volunteer, *args, **kwargs):
            super(EditProfileForm, self).__init__(*args, **kwargs)
            self.fields['language'] = forms.ModelMultipleChoiceField(
            label=_(u'Language'), 
            queryset=Language.objects.all(),
            # now you have the value you passed to use here
            initial=VolunteerLanguage.objects.filter(volunteer=initial_volunteer)
            )