我想將我的表單'作者'字段(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