2011-12-27 14 views
1

私はDjangoを初めて使っています。私はフォームとモデルフォームを使うことを学んでいます。ここでは、モデルフォームを使用して2つのチャーフィールド(ユーザー名とパスワード)を取得して保存しました。私がしたいのは、そのユーザー名のモデルIDを取得することです。以下はコードです。しかし、私は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) 

もう1つ質問があります。パスワードのモデルフィールドとは何ですか?

ありがとうございました。パスワードについては

答えて

0
user = form.save(commit=False) 
user.first_name = u'First name' 
user.last_name = u'Last name' 
user.save() 

パスワード1フィールドこれにご登録機能を変更することについてどのように

+0

for simple get id: – ssbb

+0

user = form.save()user.idを使用してください。 – ssbb

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))) 
+0

これは機能しています。しかし、それを逆に渡すと、 例外タイプ:TypeError 例外値:reverse()の後の引数*は、intでなくシーケンスでなければなりません 例外の場所:/usr/local/lib/python2.7/dist-packages /django/core/urlresolvers.py in reverse、line 473 – rnk

+0

いいえmoguzalp..still私はそれを得ることができません..jstこのエラーをチェックし、plzは私のコードを逆にチェックする理由を教えてください。 エラー: '' reg.views.thanks 'を引数'(16、) 'およびキーワード引数' {} 'で見つけることができません。 – rnk

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

をしてください、あなたは貼り付けることができあなたのurls.py

url(r'^people/thanks/(?P<person_id>\d+)$', 'people.views.thanks'), 

がされている必要があります: -

私は最近、このような問題はほとんど同じだった、それは私がURL関数の2番目のフィールドにで誤った値を持っていた、ちょうどタイプミスがあった

url(r'^people/thanks/(?P<person_id>\d+)$', 'people.views.new'), 
関連する問題