0

私はこれに似た問題を抱えています: 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 以外を渡すことができるかどうかはわかりません。

4

1 に答える 1