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', )

我已经确认是

  1. 将表单正确生成为html
  2. 它还肯定呈现了正确的模板
  3. 不传递任何上下文,即使它只是一个字符串或其他什么
  4. 不适用于任何表单
  5. 在其他模板中不起作用,这意味着它在视图中

我确信这是一个愚蠢的错误,但我一直在为此大发雷霆——如果有任何帮助,我将不胜感激!

这是因为我的模板标签与不匹配

具体来说,我写道:

{% bloc content %}

而不是

{% block body %}

最新更新