2

私は正常に動作し、私が望むものを正確に提供するリストビューを構築しました。

この ListView のテンプレートで、CreateView を指すフォームを宣言しました。フォルムはこんな感じで、

{% if user.is_authenticated %}
<form action="{% url 'post_wall' %}" method="POST">
    {% csrf_token %}
    <input type='text' name='body' />
    <input type='hidden' name='from_user' value='{{ user.id }}' />
    <input type='hidden' name='to_user' value='{{ to_user }}' />
    <input type='submit' value='POST'/>
</form>
{% endif %}

post_wall url はに対応します

url(r'accounts/post_wall', WallCreate.as_view(), name='post_wall'),

フォームを含む URL は

url(r'accounts/wall/(?P<slug>\w+)/$', WallList.as_view(), name='wall'),

これは CreateView を呼び出し、

class WallCreate(CreateView):
    model = WallPost

    def get_success_url(self):
        url = reverse('wall', kwargs={'slug': request.POST.to_user})
        return HttpResponseRedirect(url)

これは私に

TemplateDoesNotExist at /accounts/post_wall
users/wallpost_form.html

投稿が CreateView に送信されるため、これは適切に機能するはずではありませんか? または、CBV について何か誤解していませんか?

4

1 に答える 1