Django模型表单基本操作

2020-11-04  本文已影响0人  Chaweys

模型表单
模型表单指绑定到模型的表单。自定义的模型表单需扩展django.forms模块提供的ModelForm类。
模型表单基本操作包括定义模型、定义模型表单以及使用模型表单为数据库添加和修改数据。

1、定义模型
举例:E:\HDCZU_Test\chapter7\app\models.py
from django.db import models
class person(models.Model):
    name=models.CharField(max_length=50)
    age=models.SmallIntegerField()
    
【注】用于模型表单的模型与普通模型并没有任何区别


2、定义模型表单类
举例:E:\HDCZU_Test\chapter7\app\views.py
from django.forms import ModelForm
from app.models import person
class personForm(ModelForm):
    class Meta:
        model=person             #指定模型
        #fields=['name','age']    #指定字段
        fields=['name','age']    #指定字段,即这里指定所有字段
        
模型表单有两个特点:
(1)、必须继承django.forms.ModelForm类
(2)、提供子类Meta,在Meta的model字段中绑定模型,在fields字段中设置在表单中使用的模型字段。也可以使用特殊值"__all__"表示使用模型全部字段:
    如:fields="__all__"
也可使用exclude属性来排除不使用的字段。实例代码如下:
    如:exclude=['age']
    
    
    
3、使用模型表单为数据库添加数据
首先使用数据作为参数来创建模型表单,在调用表单的save()方法将数据写入数据库,如下:
{使用python的交互环境来添加数据库数据}

>>> from app.models import person
>>> from app.views import personForm
>>> one=personFrom({'name':'张三','age':25})
>>> one.save()
return Database.Cursor.execute(self, query, params)
django.db.utils.OperationalError: no such table: app_person
是因为未进行数据库迁移:
E:\HDCZU_Test\chapter7>python manage.py makemigrations
E:\HDCZU_Test\chapter7>python manage.py migrate

>>> one.save()                #保存表单字段数据到数据库
<person: person object (1)>
>>> d=person.objects.all()[0] #获取数据库中的第一条记录对象
>>> d.name,d.age              #查看获取的第一条记录的对象具体值
('张三', 25)
>>>



4、使用模型表单修改数据库
在创建模型表单对象时,可使用instance参数指定模型对象,save()方法使用模型表单的数据修改模型对象,从而修改其关联的数据库记录,如下:
>>> d=person.objects.all()[0]
>>> d.name,d.age
('张三', 25)     #首先获取得知d对象为张三

>>> one=personForm({"name":"李四","age":30},instance=d) #修改d对象,创建关联模型对象的模型表单
>>> one.save()                    #再次保存表单
<person: person object (1)>
>>> d=person.objects.get(id=1)
>>> d.name,d.age                  #通过模型对象查看修改后的数据
('李四', 30)
上一篇下一篇

猜你喜欢

热点阅读