私はこれに似た問題を抱えています: Djangoフォームデータが投稿でログインを要求するときに失われました .ユーザーがログインしている場合は回答を追加したい. 私の問題は、ログイン ページにリダイレクトするときにフォームの内容が失われることです。
これらは私の見解です:
def question(request, question_id):
question = get_object_or_404(Question, pk=question_id)
form = AnswerForm()
return render(request, 'questions/question.html', {'question': question, 'form' : form},)
@login_required
def answer(request, question_id):
question = get_object_or_404(Question, pk=question_id)
form = AnswerForm(request.POST) if request.method == 'POST' else AnswerForm()
if form.is_valid():
answer = form.save(commit=False)
answer.author = request.user
answer.question = question
answer.save()
return HttpResponseRedirect(reverse('question', args=(question.id,)))
形:
<form method="POST" action="{% url 'answer' question.id %}">
{% csrf_token %}
{{form.as_p}}
<input type="submit" value="Odpowiedz">
</form>
ログイン テンプレートのフォーム:
<form method="post" action="{% url 'login' %}">
{% csrf_token %}
{{ form.as_p }}
<input type="hidden" name="next" value="{{request.GET.next}}" />
<input type="submit" value="login" />
</form>
next を使用して url 以外を渡すことができるかどうかはわかりません。