繁体   English   中英

使用Django Bootstrap表单编辑Django表单

[英]Editing django forms using django bootstrap forms

我正在使用django表单,并且正在使用ui的django引导表单( https://django-bootstrap-form.readthedocs.org/en/latest/ )。 我能够使用django bootstrap表单在html中创建表单。 现在的问题是我想编辑表单并更新数据库中的记录。

我的问题是我如何使用Django Bootstrap表单来提供用于编辑的表单

例如:我正在使用

<form role="form" action="/abc/" method="POST">{% csrf_token %}
           <div class="form-group">
              {{ form.name.errors }}
              {{ form.name|bootstrap }}
           </div>
</form> 

这是第一次填写表格。 当我单击编辑选项时,我希望使用相同的UI,但使用value =“ the_value_saved_in_the_database”

{{ form.name|bootstrap value="_data_"}}

我该如何实现? 希望您理解问题。

提前致谢

在呈现表单之前,您需要为表单加载数据(称为绑定表单)。 如果表单表示您已存储在模型中的某些数据,则创建一个ModelForm并传入要为其编辑数据的模型实例。

这是一个例子:

class AddressBook(models.Model):
    name = models.CharField(max_length=200)
    email = models.EmailField()

class AddressForm(forms.ModelForm):
    class Meta:
        model = AddressBook

def edit_address(request, pk=None):
    existing_entry = AddressBook.objects.get(pk=pk)
    form = AddressForm(instance=existing_entry)
    return render(request, 'edit.html', {'form': form})

urls.py

url('^address/edit/(?P<pk>\d+)$', 'edit_address', name="edit"),
url('^address/save/$', 'save_address', name="save"),

现在,当您调用视图http://localhost:8000/address/edit/1 ,将使用主键为1准备好进行编辑的条目的数据填充表单。 在您的模板中,只需呈现表单,然后将其指向保存视图:

<form method="post" action="{% url 'save' %}">
    {% csrf_token %}
    {{ form|bootstrap }}
</form>

如果您将经常这样做,那么使用基于类的通用视图(例如CreateViewEditView )可以简化代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM