Формы не отображаются при использовании приложения для регистрации
Я использую это приложение для регистрации пользователей моего сайта https://github.com/egorsmkv/simple-django-login-and-register. Проблема в том, что независимо от того, что я делаю, моя форма не отображается (она отображалась, когда я не использовал это приложение для регистрации и код работал просто отлично). Вот мой код:
модель
class UserBio(models.Model):
name = models.CharField(max_length=120)
age = models.CharField(max_length=2)
phone = models.CharField(max_length=10)
height = models.CharField(max_length=3)
weight = models.CharField(max_length=3)
form
class UserBio(forms.ModelForm):
class Meta:
model = UserBio
fields = (name', 'age', 'phone', 'height', 'weight')
просмотров
def add_bio(request):
submitted = False
if request.method == "POST":
info_form = UserBio(request.POST)
if info_form.is_valid():
info_form.save()
return HttpResponseRedirect('add_information?submitted=True')
else:
info_form = UserBio()
if 'submitted' in request.GET:
submitted = True
return render(request, 'accounts/profile/add_information.html', {'form': info_form, 'submitted':submitted})
урлы
urlpatterns = [
path('add/information', views.add_information, name='add_information'),
]
html
{% extends 'layouts/default/base.html' %}
{% block title %} Add info {% endblock %}
{% load i18n %}
{% block content %}
<h4>{% trans 'Add Info' %}</h4>
{% if submitted %}
Sumitted correctly
{% else %}
<form method="post">
{% csrf_token %}
{{ info_form.as_p }}
</form>
</div>
<br/>
</body>
{% endif %}
{% endblock %}
Любая помощь будет очень признательна!
потому что в ваших представлениях def add_bio измените ваш url в соответствии с вашей функцией представления
path('add/information', views.add_bio, name='add_information'),
и в вашем шаблоне
{{ form.as_p }}
Вы передали переменную info_form
шаблону с именем переменной form
. Действительно:
# name of the variable for the template ↓
return render(request, 'accounts/profile/add_information.html', {'form': info_form, 'submitted':submitted})
Таким образом, это означает, что вы изображаете это с:
{{ form.as_p }}
Вы также должны вызвать правильное представление:
urlpatterns = [
path('add/information/', views.add_bio, name='add_information'),
]
Путь не указывает на шаблон: путь указывает на представление, а представление может (это не обязательно) выводить нулевой, один или несколько шаблонов для создания HTTP-ответа.