1

サインインしているユーザーに基づいて、フォームから送信されたデータを保存できるようにしたいと思います (ユーザーがテキストボックスに自分の名前を書き込むのではなく)。私はdjangoの組み込み認証システムを使用しています。これを達成する方法について何か考えはありますか?

@login_required 
def add_review(request, product_id):
    p = get_object_or_404(Productbackup, pk=product_id)
    if request.method == 'POST':
        form = ReviewbackupForm(request.POST)
        if form.is_valid():
            review = form.save(commit=False)
            review.product = p
            #how to save user as well?  review.user = user
            review.save()
            return HttpResponseRedirect(reverse('reserve.views.view_reviews', kwargs={'product_id':p.id}))
    else:
        form = ReviewbackupForm()
    variables = RequestContext(request, {'form': form, 'product_id': product_id})
    return render_to_response('reserve/templates/create_review.html', variables)
4

1 に答える 1

2

でsaveを使用してcommit=Falseいるので、ほぼ完了です。ログインしたユーザーは、リクエストオブジェクトから取得できます。

if form.is_valid(): 
    review = form.save(commit=False) 
    review.product = p 
    review.user = request. user 
    review.save()

詳細については、ユーザー認証に関するDjangoのドキュメントを参照してください。

于 2012-07-04T02:23:38.737 に答える