Django 在ModelForm字段中使用self
我有一个Formview并将pk传递给ModelForm。在ModelForm中,我无法在为字段定义的查询集中使用self.pk: 视图.pyDjango 在ModelForm字段中使用self,django,django-forms,Django,Django Forms,我有一个Formview并将pk传递给ModelForm。在ModelForm中,我无法在为字段定义的查询集中使用self.pk: 视图.py class DetailProductForm(forms.ModelForm): def __init__(self, *args, **kwargs): # get the pk from the FormView at set it as self.pk self.pk = kwargs.pop('pk'
class DetailProductForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
# get the pk from the FormView at set it as self.pk
self.pk = kwargs.pop('pk', None)
super(DetailProductForm, self).__init__(*args, **kwargs)
# use self.pk in my queryset (there are more fields who use self.pk, this is just one as an example)
field = forms.ModelChoiceField(queryset=Configuration.objects.filter(product__pk=self.pk), widget=forms.RadioSelect)
class Meta:
model = Configuration
fields = ['field']
[……]
forms.py
class DetailProductForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
# get the pk from the FormView at set it as self.pk
self.pk = kwargs.pop('pk', None)
super(DetailProductForm, self).__init__(*args, **kwargs)
# use self.pk in my queryset (there are more fields who use self.pk, this is just one as an example)
field = forms.ModelChoiceField(queryset=Configuration.objects.filter(product__pk=self.pk), widget=forms.RadioSelect)
class Meta:
model = Configuration
fields = ['field']
NameError:未定义名称“self”
如何将self.pk用于字段?找到了解决方案。实际上,我甚至不再需要模型了
class DetailProductForm(forms.Form):
field = forms.ModelChoiceField(queryset=None, widget=forms.RadioSelect)
def __init__(self, *args, **kwargs):
self.pk = kwargs.pop('pk', None)
super().__init__(*args, **kwargs)
self.fields['field'].queryset = Configuration.objects.filter(product__pk=self.pk))