我有一个Django表单,它是django-contact-form应用程序的子类。我想为表单提供一个初始参数(根据上下文的不同而不同)。
此代码返回联系表单,但显然不提供初始参数,因此我需要扩展它:
def contact_form(request):
scraper_form = scraperContactForm
return contact_views.contact_form(request=request, form_class=scraper_form)
这种提供初始参数的尝试失败:
def contact_form(request):
scraper_form = scraperContactForm(initial={'title' : 'hello world'})
return contact_views.contact_form(request=request, form_class=scraper_form)
TypeError at /contact/
Keyword argument 'request' must be supplied
因此,我试图提供一个请求参数,但奇怪的是,通过说表单对象不可调用而失败:
def contact_form(request):
scraper_form = scraperContactForm(request=request, initial={'title' : 'hello world'})
# supply initial subject_dropdown field, if there's anything in the subject_type
return contact_views.contact_form(request=request, form_class=scraper_form)
TypeError at /contact/
'scraperContactForm' object is not callable
无论我如何尝试提供请求参数,我都会继续'scraperContactForm' object is not callable
。
仅供参考,这是我的子类表格的代码:
class scraperContactForm(ContactForm):
subject_dropdown = django.forms.ChoiceField(label="Subject type", choices=(('suggestion', 'Suggestion for improvement'), ('bug', 'Report a bug'), ('other', 'Other')))
title = django.forms.CharField(widget=django.forms.TextInput(), label=u'Subject')
recipient_list = [settings.FEEDBACK_EMAIL]
任何人都可以建议出现问题吗?
答案 0 :(得分:0)
您不会在任何示例中提供完整的回溯。如果你有,我怀疑我们会发现你的代码不是'scraperContactForm' object is not callable
错误,而是随后调用主contact_form
视图。
这是因为该视图显然需要表单类,如关键字参数所示。但是,您已经通过在第一行中调用它来实例化表单,因此您实际上正在传递一个表单实例,这是不可调用的。
我建议如果你想为字段提供一个初始值,你可以用你的子类形式定义:
class scraperContactForm(ContactForm):
title = django.forms.CharField(initial='hello world')