如何获取特定模型表单的ID?
我刚开始学习Django,正在学习如何使用表单和模型表单。在这里,我用模型表单来获取两个字符字段(用户名和密码),然后保存它。我想做的是获取这个用户名对应的模型ID。下面是我的代码。但是我无法获取到ID。
from django.http import HttpResponse, Http404, HttpResponseRedirect
from django.core.urlresolvers import reverse
from reg.models import registration, registrationform
from django.shortcuts import render_to_response, get_object_or_404
from django.template import RequestContext
def registration(request):
if request.method == 'POST':
form = registrationform(request.POST)
if form.is_valid():
form.save()
username = form.cleaned_data['username']
p = registration.objects.all()
for loop in p:
if loop.username == username:
id = loop.id
return HttpResponseRedirect(reverse('reg.views.thanks', args=(id)))
else:
form = registrationform()
return render_to_response('registration.html', {'form' : form}, context_instance=RequestContext(request))
def thanks(request, id):
p = get_object_or_404(registration, pk=id)
return render_to_response('thanks.html', {'reg': p)
还有一个问题。密码的模型字段应该是什么?
谢谢。
4 个回答
0
你可以把你的注册功能改成这样:
def registration(request):
if request.method == 'POST':
form = registrationform(request.POST)
if form.is_valid():
userdetails = form.save()
user = userdetails.username
val = registration.objects.get(username = user)
return HttpResponseRedirect(reverse('reg.views.thanks', args=(val.id)))
else:
form = registrationform()
return render_to_response('registration.html', {'form' : form}, context_instance=RequestContext(request))
我建议你看看这个链接: https://docs.djangoproject.com/en/dev/topics/forms/modelforms/
0
user = form.save(commit=False)
user.first_name = u'First name'
user.last_name = u'Last name'
user.save()
请在密码框中输入password1这个字段的内容。
2
if request.method == 'POST':
form = registrationform(request.POST)
if form.is_valid():
data =form.save()
#...
id = data.id
#...
return HttpResponseRedirect(reverse('reg.views.thanks', args=(id)))
当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。