老问题,但我认为它仍然相关.
这实际上取决于你认为是警告的内容.
contrib.messages框架(或类似),您可以在下一页上显示一个警告框(无论是相同的表单页,还是重定向到主页或任何其他页面)或者,您可能需要确认而不是警告.您可以在创建时动态添加或更改字段,那么为什么不添加隐藏的"我接受风险"复选框,只有在您的表单引发该警告时才需要这些复选框?
第二个选项的优点是不需要cookie,它还增加了交互性(由于警告,您的用户可能不想继续...).
在您的代码中,您所要做的就是:
#views.py
...
if form.is_valid():
# proceed
else:
form.fields["my_checkbox"].widget = widgets.CheckboxInput
# re-display form
...
#forms.py
...
def clean_myfield(self):
# do your cleaning
if (myfield_warning==True) and not (my_checkbox==True):
raise ValidationError("blabla")
else:
return myfield
Run Code Online (Sandbox Code Playgroud)
在您的视图中,您可以根据需要检查form.errors中的相应错误.
| 归档时间: |
|
| 查看次数: |
4901 次 |
| 最近记录: |