我正在创建一个没有模型的窗体。这是我的形式课:
class LinkAssetsForm(forms.Form):
preview = forms.ChoiceField()
thumbnail = forms.ChoiceField()
banner = forms.ChoiceField()
def __init__(self, *args, **kwargs):
super(LinkAssetsForm, self).__init__()
filepod = kwargs.get('filepod',None)
if filepod is not None:
fp_util = FilePodUtil()
preview_files = fp_util.get_files_from_filepod(filepod, ['mov'])
thumbnail_files = fp_util.get_files_from_filepod(filepod, ['jpg'])
banner_files = fp_util.get_files_from_filepod(filepod, ['jpg'])
self.fields['preview'].choices = [(x.fullpath, x.name) for x in preview_files]
self.fields['thumbnail'].choices = [(x.fullpath, x.name) for x in thumbnail_files]
self.fields['banner'].choices = [(x.fullpath, x.name) for x in banner_files]
我的模板:
^{pr2}$在我看来:
def post(self, request, *args, **kwargs):
form = LinkAssetsForm(request.POST)
if form.is_valid():
print 'VALID=====>>>>>>>>>>'
data = form.cleand_data
#TODO: save the data
messages.add_message(self.request, messages.SUCCESS, "Assets linked successfully.")
return redirect(reverse('delivery:delivery-content-link-assets', args=[self.kwargs['delivery_id'],self.kwargs['content_id']]))
else:
print 'INVALID=====>>>>>>>>>>'
messages.add_message(self.request, messages.ERROR, "Select all the required fields.")
我的问题是表单从不通过if form.is_valid()
条件。表单呈现正确,我在组合框中选择值,提交到正确的地址,等等。。它总是无法通过验证。在
你能看到我遗漏了什么吗?在
谢谢你的帮助。在
我发现在表单从未被验证的情况下,这是因为它需要所有字段,而这些字段并不总是必需的。在您的表单字段中设置required=False,即:
如果不总是向字段传递值,可能会有所帮助。在
你可以试着添加
模板显示错误-这可以给你一个提示。在
p.S.“cleand\u数据”-是打字错误吗?在
当您调用
super()
时,您忘记了传递arg和kwargs。它应该是:相关问题 更多 >
编程相关推荐