我想将我的表单'作者'字段(models.ForeignKey(用户))的默认值设置为当前登录的用户。我希望在保存条目之前这样做,因此创建条目时用户不必自行选择以便表单进行验证。将表单'作者'字段设置为在呈现之前登录用户
我试着在我的表单init函数中设置值,但没有引用请求对象,所以它似乎不可能?
我没有使用该应用程序的django管理面板。
我想将我的表单'作者'字段(models.ForeignKey(用户))的默认值设置为当前登录的用户。我希望在保存条目之前这样做,因此创建条目时用户不必自行选择以便表单进行验证。将表单'作者'字段设置为在呈现之前登录用户
我试着在我的表单init函数中设置值,但没有引用请求对象,所以它似乎不可能?
我没有使用该应用程序的django管理面板。
Dynamic initial values为我工作,对默认Django form view:
if request.method == 'POST':
form = ContactForm(request.POST)
if form.is_valid(): # All validation rules pass
# Process the data in form.cleaned_data
return HttpResponseRedirect('/thanks/') # Redirect after POST
else:
form = ContactForm(initial={'author': request.user })
return render_to_response('contact.html', {
'form': form,
此设置的初始值在未绑定表单的作者下拉列表中,用户仍然可以在编辑时更改它。
您可以设置当你处理的视图(请注意,在我的例子中,“MyForm的”类是模式的形式形式author属性,我排除“作者”字段从形式):
def submit_form(request):
if request.method == 'POST':
form = MyForm(request.POST)
if form.is_valid():
submission = form.save(commit=False)
submission.author = request.user
submission.save()
return http.HttpResponseRedirect('submitted/')
else:
form = MyForm()
context = Context({'title': 'Submit Form', 'form': form, 'user': request.user})
return render_to_response('form.html', context)
似乎没有工作,我试过form = EntryForm(initial = {'author':request.user.username})和form = EntryForm(initial = {'author':request.user}) – Hanpan 2011-02-01 16:38:53