Mat*_*att 39 python django django-models django-forms
保存ModelForm后如何获取主键?在验证并保存表单后,我想将用户重定向到contact_details视图,该视图需要联系人的主键.
def contact_create(request):
if request.method == 'POST':
form = ContactForm(request.POST)
if form.is_valid():
form.save()
return HttpResponseRedirect(reverse(contact_details, args=(form.pk,)))
else:
form = ContactForm()
Run Code Online (Sandbox Code Playgroud)
mon*_*kut 53
该的ModelForm的保存方法返回保存的对象.
试试这个:
def contact_create(request):
if request.method == 'POST':
form = ContactForm(request.POST)
if form.is_valid():
new_contact = form.save()
return HttpResponseRedirect(reverse(contact_details, args=(new_contact.pk,)))
else:
form = ContactForm()
Run Code Online (Sandbox Code Playgroud)
Kev*_*vin 13
如果您设置了form.save(commit = False),因为您想要修改数据并且您具有多对多关系,那么答案会有所不同:
def contact_create(request):
if request.method == 'POST':
form = ContactForm(request.POST)
if form.is_valid():
new_contact = form.save(commit=False)
new_contact.data1 = "gets modified"
new_contact.save()
form.save_m2m()
return HttpResponseRedirect(reverse(contact_details, args=(new_contact.pk,)))
else:
form = ContactFrom()
Run Code Online (Sandbox Code Playgroud)
https://docs.djangoproject.com/en/1.3/topics/forms/modelforms/#the-save-method
| 归档时间: |
|
| 查看次数: |
22281 次 |
| 最近记录: |