【发布时间】:2014-03-12 19:22:17
【问题描述】:
我对 Django 很陌生,所以如果我的问题看起来很幼稚,请多多包涵。
如何在表单加载之前根据条件更改表单的值? 例如,如果有一个名为“Admin”的表单复选框字段,并且用户是管理员,我想知道如何在表单加载之前检查该复选框字段。我应该将此逻辑添加到调用表单的视图中还是将其添加到表单类中?
我使用的是 Django 1.4。
【问题讨论】:
标签: django django-forms
我对 Django 很陌生,所以如果我的问题看起来很幼稚,请多多包涵。
如何在表单加载之前根据条件更改表单的值? 例如,如果有一个名为“Admin”的表单复选框字段,并且用户是管理员,我想知道如何在表单加载之前检查该复选框字段。我应该将此逻辑添加到调用表单的视图中还是将其添加到表单类中?
我使用的是 Django 1.4。
【问题讨论】:
标签: django django-forms
您在初始化表单对象之前在视图中检查它。
if request.user.is_superuser:
initial = {'checkboxfields_name':True}
else:
initial = {'checkboxfields_name':False}
form = YourForm(request.POST, initial = initial) if request.method == 'POST' else YourForm(initial = initial)
我猜是这样的。
【讨论】:
form = YourForm(request.POST or None, initial = initial)
form = YourForm(request.POST or None, initial={'checkboxfields_name': request.user.is_superuser}) ;-)