Django form表单修改数据

Posted Stefan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django form表单修改数据相关的知识,希望对你有一定的参考价值。

form:

#!/usr/bin/env python
#coding:utf8
 
from django.forms import Form,ModelForm
import models
 
class CourseModelForm(ModelForm):
    class Meta:
        model = models.Course
        exclude = ()
 
    def __init__(self,*args,**kwargs):
        super(CourseModelForm,self).__init__(*args,**kwargs)
 
        for fieldname in self.base_fields:  #循环给所有字段加样式
            field = self.base_fields[fieldname]
            field.widget.attrs.update({‘class‘:‘form-control‘})

后端:

def mod_course(request,customer_id):
    print("进入修改课程")
    course_obj = Course.objects.get(id=customer_id)
    if request.method == ‘POST‘:#使用form做数据修改
        form = forms.CourseModelForm(request.POST,instance=course_obj)#获取POST修改后的数据
        if form.is_valid():#判断是否满足form条件
            form.save()
        return redirect(‘/course/‘)
    print("customer_ID===========>",customer_id)
    print(course_obj)
    form = forms.CourseModelForm(instance=course_obj)
    return render(request,‘course_mod.html‘,{‘course_form‘:form})

前端:

{% extends ‘index.html‘ %}
{% block head-menu %}
    <h2 style="margin-left: 5%">Course modified</h2>
        <form class="form-horizontal" action="" method="post">
            {% for field in course_form %}
                  <div class="form-group">
                    <label class="col-sm-2 control-label">{{ field.label }}</label>
                    <div class="col-sm-10">
                        {{ field }}
                    </div>
                  </div>
            {% endfor %}
        <input style="margin-left: 50%" class="btn btn-primary btn-rg active" type="submit" value="提交"/>
        </form>
{% endblock %}

以上是关于Django form表单修改数据的主要内容,如果未能解决你的问题,请参考以下文章

Django表单form ajax应用(上)

Django中的form表单

Django使用普通表单Form以及modelForm操作数据库方式总结

Django绑定表单无效,但未引发ValidationError

Django高级-Form表单组件应用

Django框架form表单配合ajax注册