Шаблон Django не получает контекстный объект
Я пытаюсь реализовать простую форму регистрации и немного рву на себе волосы. По какой-то причине, кажется, что представление не передает должным образом объект контекста, который я ему передаю (независимо от того, что это такое)
вот мой код:
urls.py
path(r"signup/", client_views.signup_view, name="page-signup")
views.py
def signup_view(request):
if request.method == 'POST':
form = SignUpForm(request.POST)
if form.is_valid():
form.save()
username = form.cleaned_data.get('username')
raw_password = form.cleaned_data.get('password1')
user = authenticate(username=username, password=raw_password)
login(request, user)
return redirect('page-index')
else:
form = SignUpForm()
context = {'form': form}
return render(request, 'registration/signup.html', context=context)
registration/signup.html
{% extends "base.html" %}
{% load static %}
{% block header %}
Sign Up
{% endblock %}
{% block content %}
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Sign Up</button>
</form>
{% endblock %}
forms.py
class SignUpForm(UserCreationForm):
first_name = forms.CharField(max_length=30, required=False, help_text='Optional.')
last_name = forms.CharField(max_length=30, required=False, help_text='Optional.')
email = forms.EmailField(max_length=254, help_text='Required. Inform a valid email address.')
class Meta:
model = User
fields = ('first_name', 'last_name', 'email', 'password1', 'password2', )
Я подтвердил, что это
- generating the form properly as html
- it's also definitely rendering the correct template
- doesn't pass any context even if it's just a string or something
- doesn't work with any forms
- doesn't work in other templates, implying to me it's in the view
Я уверен, что это какая-то глупая ошибка, но я рву на себе волосы из-за этого - любая помощь была бы очень признательна!
Это было потому, что мои теги шаблона не совпадали
Конкретно я написал:
{% bloc content %}
вместо
{% block body %}