【发布时间】:2017-09-26 14:03:15
【问题描述】:
我是 django 的新手,我一直在学习帮助我创建项目的教程。我的问题是表单及其字段没有显示在我的 html 页面上。
我的 html 文件中的代码行
<form action="admin/signup/" method="post">
<div class="form-horizontal form-label-left">
{% csrf_token %}
{% for field in signupForm %}
<p>
{{ field.label_tag }}<br>
{{ field }}
{% if field.help_text %}
<small style="color: grey">{{ field.help_text }}</small>
{% endif %}
{% for error in field.errors %}
<p style="color: red">{{ error }}</p>
{% endfor %}
</p>
{% endfor %}
<div class="ln_solid"></div>
<div class="form-group">
<div class="col-md-9 col-sm-9 col-xs-12 col-md-offset-4">
<button class="btn btn-primary">Cancel</button>
<button type="submit" class="btn btn-success">Submit</button>
</div>
</div>
</div>
</form>
我的注册表单类
class SignUpForm(UserCreationForm):
usertype = forms.CharField(max_length=10)
userID = forms.CharField(label="User ID")
class Meta:
model = User
fields = (
'username', 'first_name', 'last_name', 'email',
'password1', 'password2', 'userID', 'usertype')
和我的注册页面视图
def signup(request):
if request.method == 'POST':
form = SignUpForm(request.POST)
if form.is_valid():
user = form.save()
user.refresh_from_db()
user.profile.usertype = form.clean_data.get('usertype')
user.profile.userID = form.clean_data.get('userID')
user.save()
else:
form = SignUpForm()
context = {
'signupForm' :form
}
return render(request, 'admin.html', context)
感谢任何可能的解决方案和建议,谢谢!
【问题讨论】:
-
“似乎无法显示”是什么意思?是否显示?你有任何错误显示吗?
-
Python 中的人们对PEP8 真的很讨厌(至少对于命名约定:snake_case 中的实例/函数/方法和 CamelCase 中的类)
-
我没有收到任何错误。表单字段不会出现在 html 页面上。编辑了我的问题,感谢您的评论
-
尝试插入
{% debug %}标记并检查上下文(参见页面源代码)。 Python 区分大小写,请注意模板和视图之间的大小写不匹配。
标签: django django-forms django-templates