Django1.11で申し込みフォームを作成したいと思います。
Django:URLにpkを付けずにDetailViewにリダイレクト
urls.py
app_name = 'accounts'
urlpatterns = [
url(r'^create/$', views.SignUpView.as_view(), name='create'),
url(r'^check/$', views.CheckView.as_view(), name='check'),
url(r'^update/$', views.CorrectView.as_view(), name='update'),
# ...
]
views.py
class SignUpView(CreateView):
model = User
form_class = UserForm
template_name = "accounts/create.html"
def get_success_url(self):
check_view = CheckView.as_view()
return redirect(check_view, pk=self.object.pk)
class CheckView(DetailView):
model = User
template_name = "accounts/check.html"
class CorrectView(UpdateView):
model = User
form_class = UserForm
template_name = "accounts/create.html"
def get_success_url(self):
check_view = CheckView.as_view()
return redirect(check_view, pk=self.object.pk)
新規ユーザーがSignUpView(generic.CreateView)に彼の情報を入力した後、彼は何を参照します彼はちょうどCheckView(generic.DetailView)に入力しています。もし彼が何らかの間違いをしたことに気がついたら、彼は彼の情報を再入力しますnをCorrectView(generic.UpdateView)に追加します。
たとえば、URLをr'^check/(?P<pk>[0-9]+)$'
にしたくないです。これは、例えばユーザがブラウザでURL .../check/1
を入力すると、残念ながら他人の情報を見ることができるからである。
上記のコードを実行すると、エラーReverse for 'accounts.views.CheckView' not found. 'accounts.views.CheckView' is not a valid view function or pattern name.
が発生します。 CheckView(generic.DetailView)にリダイレクトする方法をURL include pkなしで教えてください。
ここで認証を使用しているので、認証されたユーザーの情報のみを表示できますか? –