【问题标题】:Form isn't displayed in template表格不显示在模板中
【发布时间】: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


【解决方案1】:

可能需要在 SignUpForm 中缩进。是吗!!

【讨论】:

    猜你喜欢
    • 2019-07-30
    • 1970-01-01
    • 2021-09-06
    • 1970-01-01
    • 2020-09-14
    • 1970-01-01
    • 2011-10-08
    • 1970-01-01
    • 2015-07-05
    相关资源
    最近更新 更多