2012-03-01 14 views
2

私はdjangoモデルフォームを使用していますが、サインアップしていないユーザーでもフォームを埋め込むことができます。ここで は私のモデルである:ユーザーがサインアップする前にdjangoモデルのフォームデータを保存する

class Study(model.Model): 
    marksobtained = models.CharField(max_length=5) 
    highestmarks = models.CharField(max_length=5) 
    teacher = models.CharField(max_length=300) 

class StudyForm(): 
    some customisation stuff. 

、その後views.py

form = StudiesForm(request.POST or None, 
         instance=id and Studies.objects.get(id=id)) 
if form.is_valid(): 
     form.save() 
     return render(request, 'calculate.html', {'detail': ret_dict, 'amt': amt}) 
     else: 
      return render(request, 'forms.html', {'form':form}) 
    else: 
      return render(request, 'forms.html', {'form':form}) 

DONOTは、ビューにくぼみや他のものについて悩む、これは私が何をしようとしています何の単なるモデルであり、匿名ユーザーがフォームを送信すると、最初にサインアップしてからデータをモデルに追加する必要があるため、匿名ユーザーがフォームを送信できるようになりました。

これはどのように実装できますか?

答えて

1

ユーザーが認証されていない場合は、フォームデータをセッションに保存します。

次に、ユーザーをシステムにログインします。

次に、フォームデータをセッションから取り出し、認証されたユーザー情報を取得して情報を保存します。

0
  1. ユーザーをFKにする必要はありません。モデルを保存します。
  2. request.user.is_authenticated()の場合、作成したモデルのIDを持つCookieを取得します。ログインページで彼をリダイレクトしてください。
  3. モデルIDを持つクッキーが存在するかどうかを各ユーザーチェックで確認し、ユーザーをモデルに添付して保存します。
+0

チュートリアル/投稿/リンクの手順を説明していれば、私はそれを理解できませんでした。ここに投稿してください。ありがとう – user993563

+0

@ user993563正確にここでは難しいと思われるものは何ですか? – DrTyrsa

+0

1.作成したモデルのIDを持つCookieを取得します。 2.ユーザFKをreqdにしないでください。それは、ユーザーモデルが外部キーであってはならないということですか?私はdjangoと中間の一種ですので、お礼を精緻化してください。 – user993563

関連する問題