不使用UpdateView djang更新数据库

2024-09-30 06:31:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道我的代码不是最佳的,因为我只是Django的初学者,所以不要对我太苛刻

这是我的密码:

你知道吗视图.py你知道吗

class ComposantUpdate(UpdateView):
    model = configuration
    fields = '__all__'
    template_name = 'accueil/exploitation/update_composant.html'

更新_组件.html你知道吗

<form action="{% url 'composant_update' pk=composant.id %}" method="post">
    {% csrf_token %}
    <div class="form-group">
        {% for field in form %}
            <label class="col-md-6 offset-md-3 nom_champ"> {{field.label_tag}}</label>
            <input class="col-md-4 offset-md-4 contenu_champ" type="text" name="{{ field.label }}" id="{{ field.id_for_label }}" value="{{ field.value }}"/>
        {%endfor%}
        <br>
        <br>
        <button class="col-md-6 offset-md-3 btn btn-primary" type="submit" value="Update" /> Mettre à jour </button>
    </div>  
</form>

你知道吗网址.py你知道吗

path('update_composant/<int:pk>', views.ComposantUpdate.as_view(), 
name='composant_update'),

你知道吗型号.py你知道吗

class configuration(models.Model):
    Num_ordre = models.CharField(max_length=15)
    Composant = models.CharField(max_length=15)
    Designation = models.CharField(max_length=15)
    Qte_servie = models.IntegerField()
    Qte_a_servir = models.IntegerField()
    Lot = models.CharField(max_length=15)
    Categorie  = models.CharField(max_length=15)
    Famille = models.CharField(max_length=15)
def __str__(self):
    return '%s %s %s' % (self.Num_ordre, self.Designation, self.Lot)

当我转到表单的url时,所有字段都会得到数据库的内容,这是我所期望的,但是如果我修改“Lot”字段并单击提交,我的数据库根本不会用新值“Lot”更新。你知道为什么吗?作为参考,我确实被重定向到“composant\u update”视图,并且没有出现任何错误


Tags: namepyselfformfieldmodelsupdatemd
1条回答
网友
1楼 · 发布于 2024-09-30 06:31:49

事实上,我没有正确编写html,输入中的属性“name”应该是{{field.html\u名称}}而不是{{字段.标签}}. 你知道吗

这不起作用:

<input class="col-md-4 offset-md-4 contenu_champ" type="text" name="{{ field.label }}" id="{{ field.id_for_label }}" value="{{ field.value }}"/>

这样做有效:

<input class="col-md-4 offset-md-4 contenu_champ" type="text" name="{{ field.html_name}}" id="{{ field.id_for_label }}" value="{{ field.value }}"/>

有关详细信息,请参见https://docs.djangoproject.com/en/2.0/topics/forms/#s-looping-over-the-form-s-fields

谢谢威廉·范·昂森!你知道吗

相关问题 更多 >

    热门问题