Страница не найдена Ошибка при попытке отрисовки формы в django - PullRequest
0 голосов
/ 17 февраля 2020

Я следовал инструкциям здесь .

Это ошибка, которую выдает мне, когда я пытаюсь запустить ее на локальном хосте:

Page not found (404)
Request Method:     GET
Request URL:    http://localhost:7000/account.html

Using the URLconf defined in gettingstarted.urls, Django tried these URL patterns, in this   
order:

[name='index']
[name='account']
db/ [name='db']
admin/
^celery-progress/

The current path, account.html, didn't match any of these.

You're seeing this error because you have DEBUG = True in your Django settings file. Change   
that to False, and Django will display a standard 404 page.

Это то, что у меня есть в моем urls.py

 urlpatterns = [
 path("", hello.views.index, name="index"),
 path("", hello.views.account, name="account"),
 path("db/", hello.views.db, name="db"),
 path("admin/", admin.site.urls),
 re_path(r'^celery-progress/', include('celery_progress.urls'))
 ]

Это то, что у меня есть в views.py

def account(request):
if request.method == 'POST':
    form = AccountForm(request.POST)

    if form.is_valid():
        return HttpResponseRedirect('loading.html')

else:
    form = Nameform()

return render(request, 'account.html', {'form': form})

Наконец, это сама форма (account. html) :

<form action="/account/" method="post">
{% csrf_token %}
{{ form }}
<input type="submit" value="Submit">
</form>

У меня такое чувство, что я скучаю по чему-то очень простому, но я не могу, потому что моя жизнь это видит. Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

3 голосов
/ 17 февраля 2020

Во-первых, вам необходимо изменить шаблоны URL, поскольку несколько представлений (hello.views.index и hello.views.account) указывают на один и тот же шаблон

urlpatterns = [
    <b>path("index/", hello.views.index, name="index"),
    path("account/", hello.views.account, name="account"),</b>
    path("db/", hello.views.db, name="db"),
    path("admin/", admin.site.urls),
    re_path(r'^celery-progress/', include('celery_progress.urls'))
]

, затем перейдите по URL, http://localhost:7000/account/

0 голосов
/ 17 февраля 2020

Вы запрашиваете URL, который может соответствовать строке /account/, но в вашей переменной urlpatterns есть пустая строка, поэтому она не может ничего соответствовать.

Помните, что первый аргумент urlpatterns - это строка шаблона, которую можно сопоставить с регулярным выражением.

Возможно, вы можете сопоставить ее следующим образом:

path("/account/", hello.views.account, name="account")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...