码迷,mamicode.com
首页 > 其他好文 > 详细

ModelForm用法讲解

时间:2020-02-10 18:23:08      阅读:77      评论:0      收藏:0      [点我收藏+]

标签:self   orm   ali   word   不用   create   font   turn   ice   

模型表单:

首先我们在在定义一个模型类:

from django.db import models
from django.core import validators
# Create your models here.
class Book(models.Model):
    title = models.CharField(max_length=100)
    page = models.IntegerField()
    price = models.FloatField(validators=validators.MaxLengthValidator(limit_value =1000))

class User(models.Model):
    username = models.CharField(max_length=100)
    password = models.CharField(max_length=16)
    telephone = models.CharField(max_length=11)

然后在form文件里写 ,还可以自己定义错误信息在error_messages里写

from django import forms
from .models import Book
class AddBookForm(forms.ModelForm):   #ModelForm和Form用法一样   只不过能从模型中继承他的用法
    def clean_page(self):
        page = self.cleaned_data.get(page)
        if page > 100:
            raise forms.ValidationError(价格不能大于100)
        return page
    class Meta:
        model = Book
        #  fields 和exclude 必须要定义一个
        # fields = ‘__all__‘   #Book模型上得所有字段我们都可以继承得到
        # fields = [‘title‘,‘page‘]  #只验证title和page  价格可以不用写
        exclude = [price]  #除了price 和field=[‘title‘,‘page‘]一样
        error_messages = {   #自己定义错误信息。
            page :{
            required:请传入page参数,  #一个字段都没有传
            invalid:请输入一个可用得page参数  #传了错误得字段
            },
            title :{
                max_length : title不能超过100个字符

            },
            price:{
                max_value:图书价格不能超过1000
            }
        }

这样  我们在视图函数里引用form就可以了:

def add_book(request):
    form = AddBookForm(request.POST)
    if form.is_valid():
        title = form.cleaned_data.get(title)
        page = form.cleaned_data.get(page)
        price = form.cleaned_data.get(price)
        print(title:{}.format(title))
        print(page:{}.format(page))
        print(price:{}.format(price))
        return HttpResponse(success)
    else:
        print(form.errors.get_json_data())
        return HttpResponse(FAIL)

 

ModelForm用法讲解

标签:self   orm   ali   word   不用   create   font   turn   ice   

原文地址:https://www.cnblogs.com/nihao2/p/12291571.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!