【问题标题】:Django: How to manually render each field of a form on a bootstrap template?Django:如何在引导模板上手动呈现表单的每个字段?
【发布时间】:2021-08-13 04:20:47
【问题描述】:

我在网上找到了这个不错的引导模板,我想用它作为更新用户配置文件的模板,我尝试了几种我在这里和 youtube 中找到的方法,但我仍然无法获得它工作。当我单击更新时,不仅表单没有呈现,更新的配置文件也没有被保存。有人可以帮我解决问题吗?如果我没有意义,我会提前道歉,因为英语是我的第二语言。

这是我的个人资料更新视图,我没有为它创建表单,因为我在网上看到我不需要创建表单来工作,只需要模型。

class TutorProfileUpdateView(UpdateView):
    model = User
    fields = ['first_name', 'last_name', 'email', 'phone number', 'current_address', 
    'image', 'bio']
    template_name = 'account/tutor_dashboard.html'
    success_url = reverse_lazy('tutor-dashboard')

    def form_valid(self, form):
        fm = form.save(commit=False)
        fm.user = self.request.user
        fm.save()
        messages.success(self.request, f'Profile Updated!')
        return HttpResponseRedirect(self.get_success_url())

这里是模板的一部分,太长了就不贴了。

<form method="POST">
    {% csrf_token%}
    <div class="card h-100">
        <div class="card-body">
            <div class="row gutters">
                <div class="col-xl-12 col-lg-12 col-md-12 col-sm-12 col-12">
                    <h6 class="mb-2 text-primary">Personal Details</h6>
                </div>
                <div class="col-xl-6 col-lg-6 col-md-6 col-sm-6 col-12">
                    <div class="form-group">
                        {{ form.first_name }}
                        <label for="{{ form.first_name.id_for_label }}">First Name</label>
                        <input type="text" class="form-control" id="{{ form.first_name.id_for_label }}" placeholder="{{ user.first_name }}">
                    </div>

【问题讨论】:

    标签: django django-models django-views django-forms django-templates


    【解决方案1】:

    您可以遍历表单字段并手动呈现每个标签和输入(或选择等)。

    {% for field in form %}
        <div class="Your boorstrap classes">
            {{ field.errors }}
            {{ field.label_tag }} {{ field }}
            {% if field.help_text %}
            <p class="help">{{ field.help_text|safe }}</p>
            {% endif %}
        </div>
    {% endfor %}
    
    

    有关更多详细信息,您可以在此处查看文档:https://docs.djangoproject.com/en/3.2/topics/forms/#looping-over-the-form-s-fields

    【讨论】:

      猜你喜欢
      • 2011-12-30
      • 2020-06-23
      • 1970-01-01
      • 2019-02-23
      • 2015-11-27
      • 2021-12-15
      • 2011-05-06
      • 2011-09-06
      • 2019-12-07
      相关资源
      最近更新 更多