NoReverseMatch at /top/とエラーが出て、解決できないのでアドバイスお願いします。
Reverse for 'create_users' not found. 'create_users' is not a valid view function or pattern name.
とエラーが出ています。
login -urls.py -views.py app -urls.py -views.py -settings.py templates -app -top.html -users -login.html users -urls.py -views.py
という構造でDjangoアプリを作っています。
loginのurls.pyには
from django.urls import path, include from . import views urlpatterns = [ path('login/', include('registration.urls')), path('create_users/', views.Create_users.as_view(), name="create_users"), ]
と書いて
loginのviews.pyには
class Create_users(CreateView): def post(self, request, *args, **kwargs): form = UserCreateForm(data=request.POST) if form.is_valid(): form.save() username = form.cleaned_data.get('user_id') password = form.cleaned_data.get('password1') user = authenticate(username=username, password=password) login(request, user) return redirect('/') return render(request, 'create.html', {'form': form,}) def get(self, request, *args, **kwargs): form = UserCreateForm(request.POST) return render(request, 'create.html', {'form': form,}) create_users = Create_users.as_view()
と書きました。
templates/app/top.htmlには
<html lang="ja"> <body> {% if user.user_id %} <p>ログインしました.</p> <p>こんにちは,{{ user.user_id }}さん</p> {% else %} <a href="{% url 'users_index' %}">ここをクリック</a> <a href="{% url 'create_users' %}">アカウント作成</a> {% endif %} </body> </html>
と書きました。
loginのurls.pyにapp_name="login"
と追記してtemplates/app/top.htmlに
<a href="{% url 'login:create_users' %}">アカウント作成</a>
と書き換えても別のエラーが出ました。urlのnameを指定してるのにNoReverseMatchとエラーが出る理由がわかりません。何が間違っているのでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/19 05:15
2020/10/19 05:21
2020/10/19 05:26
2020/10/19 05:42
2020/10/19 07:33
2020/10/19 07:59
2020/10/19 09:56