gpt4 book ai didi

python - Django/Python - 检查参数是否传递给类

转载 作者:行者123 更新时间:2023-12-01 01:53:48 25 4
gpt4 key购买 nike

我正在向 Django 表单传递不同的参数,并且想检查在表单的类中传递了哪个参数。我怎样才能做到这一点?

views.py

...
form = CategoryForm(choose_category =True)
...

forms.py

class CategoryForm(forms.Form):

def __init__(self, *args, **kwargs):

self.choose_category = kwargs.pop('choose_category',None)
super(CategoryForm,self).__init__(*args, **kwargs)
self.helper = FormHelper()
self.helper.form_method = 'POST'

if not self.choose_category:
self.helper.add_input(Submit('submit', 'Submit', css_class='btn-success'))

if self.choose_category:
do something

在上面的示例中,错误是 name 'self' 未定义,我如何检查 __init__< 之外是否存在 choose_category/

这是一个Python问题,我如何检查哪些参数已从类内部但在__init__构造函数之外传递给类。还有一个答案,例如 - 你不能,这是愚蠢的 - 如果我能理解我正在做的逻辑断裂,欢迎:)

谢谢!

EDIT: forms. py

无法理解为什么这不起作用并且字段不显示:

class CategoryForm(forms.Form)

def __init__(self, *args, **kwargs):

self.choose_category = kwargs.pop('choose_category',None)
super(CategoryForm,self).__init__(*args, **kwargs)
self.helper = FormHelper()
self.helper.form_method = 'POST'

if not self.choose_category:

self.helper.add_input(Submit('submit', 'Submit', css_class='btn-success'))
self.onchange(False)
else:
self.onchange(True)

def onchange (self, val):

if val:
category = forms.ModelChoiceField(
queryset =Categories.objects.all(),
widget = forms.Select(attrs = {'onchange':'form.submit();'}) ,
empty_label= None,
required=True
)
print('why doesnt it work this way')
else:
category = forms.ModelChoiceField(queryset =Categories.objects.all() ,empty_label= None,required=True)

最佳答案

这种事情必须在__init__内部完成。从那里,您可以通过 self.fields 字典添加或修改字段定义。

if choose_category:
self.fields['cat'] = forms.ModelChoiceField(queryset=....)

关于python - Django/Python - 检查参数是否传递给类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50447987/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com