2016-07-14 7 views
1

ユーザーがコンテンツを作成し、submitを押して、現在ログインしていない場合は登録またはログインを促すDjangoを使用してページを実装しようとしています。コンテンツのモデルのフィールドの1つはユーザーを参照するので、作成するにはログインする必要がありますが、ログインするようにプロンプ​​トが出される前にすべてのデータを入力できるようにしておきます。ビューで@loginrequiredデコレータを使用しましたが、コンテンツを作成する前にログインする必要がありました。 、これは、フォームをロードコンテンツを作成した後で保存する前に登録を促す

def search(request): 
form = LocationInput() 
if request.method == "POST": 
    form = LocationInput(request.POST) 
    if form.is_valid(): 
     t = Trip(trip_name = form.cleaned_data['city']) 
     t.user = request.user 
     t.save() 
     form.save() 
     l = Location.objects.get(google_id=form.cleaned_data['google_id']) 
     l.trips.add(t) 
     l.save() 
     return HttpResponseRedirect('/trips/') 
return render(request, 'frontpage/search.html', {'form': form}) 

ので、私は、ユーザーを登録しますが、ユーザーの後までLocationInput(request.POST)からのデータを保持する必要があり、それに関連付けられているユーザが必要なオブジェクトを作成します。ここではビューには、現在あります登録されています。どんな助けでも大歓迎です!

答えて

0

私は2つのオプションを見ることができます:

  1. はユーザーの参照用NULLを許可し、状態の内容を保存し、「ユーザーログインを保留またはサインアップ」、およびsessionにコンテンツオブジェクトのIDを格納します。定期的にユーザー参照のない「古い」コンテンツをバキュームします。
  2. フォームのデータ全体をセッションに保存します。

スーパーユーザーとして、ユーザーがログインやサインアップをしていなくてもコンテンツにアクセスできるようになり、後でユーザーが連絡を取り合い、彼が提出したコンテンツを手助けして復旧することができます。すべてがセッションに保存されている間は、セッションが削除されるとすべて失われます。

関連する問題