渲染前将表单“作者”字段设置为登录用户

Han*_*pan 0 django

我想将表单“作者”字段 (models.ForeignKey(User)) 的默认值设置为当前登录的用户。我想在保存条目之前执行此操作,因此在创建条目时,用户不必为了表单验证而选择自己。

我尝试在表单 init 函数中设置该值,但是没有对请求对象的引用,所以似乎不可能?

我没有为此应用程序使用 django 管理面板。

Ala*_*irC 5

对于默认的Django 表单视图动态初始值对我有用

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,
Run Code Online (Sandbox Code Playgroud)

这会在作者下拉列表中为未绑定表单设置初始值,用户仍然可以在编辑时更改它。