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

Django Form 组件

时间:2018-08-23 23:07:26      阅读:273      评论:0      收藏:0      [点我收藏+]

标签:ice   span   lse   use   hid   widget   strong   asc   play   

 

Django Form

Django中为用户定义了一个django.forms库,这个库可以方便的进行form类的数据显示及数据验证,省去了很多用户的代码。django.forms库用起来也方便,只需要在HTML文件中需要增加<form>tag时,定义相应的Form类就可以。在以下的实例中,我们最终的页面上只有一个<form> tag, 所以我们只需要定义一个Form类即可。Django 社区的惯例是把Form类单独放在一个forms.py文件中,我们最好也遵循这个规则。创建disk\forms.py文件,并写入

 

新建一个项目

技术分享图片

技术分享图片
from django.db import models

class Depart(models.Model):
    caption = models.CharField(max_length=32)

    def __str__(self):
        return self.caption
class Role(models.Model):
    title = models.CharField(max_length=32)

    def __str__(self):
        return self.title

class User(models.Model):

    name = models.CharField(verbose_name=姓名,max_length=32)
    depart = models.ForeignKey(verbose_name=部门,to=Depart,on_delete=models.CASCADE)

    gender_choices = (
        (1,),
        (2,),
    )
    gender = models.IntegerField(verbose_name=性别,choices=gender_choices,default=1)

    roles = models.ManyToManyField(verbose_name=角色,to=Role)
models.py
技术分享图片
 1 from django.shortcuts import render,redirect
 2 from app01 import models
 3 
 4 def user_list(request):
 5     user_queryset = models.User.objects.all()
 6     return render(request,user_list.html,{user_queryset:user_queryset})
 7 
 8 from django import forms
 9 class UserForm(forms.ModelForm):
10     class Meta:
11         model = models.User
12         fields = __all__
13         # fields = ‘__all__‘
14         # widgets = {
15         #     ‘name‘:forms.TextInput(attrs={‘class‘:‘form-control‘}),
16         #     ‘depart‘:forms.Select(attrs={‘class‘:‘form-control‘}),
17         #     ‘gender‘:forms.Select(attrs={‘class‘:‘form-control‘}),
18         #     ‘roles‘:forms.SelectMultiple(attrs={‘class‘:‘form-control‘}),
19         # }
20         error_messages = {
21             name:{
22                 required:用户名不能为空
23             }
24         }
25 
26 
27 def user_add(request):
28     if request.method == "GET":
29         form = UserForm()
30     else:
31         form = UserForm(request.POST)
32         if form.is_valid():
33             print(通过验证)
34             form.save()
35             return redirect(/user/list/)
36     return render(request, user_add.html, {form: form})
views.py
技术分享图片
from django.conf.urls import url
from django.contrib import admin
from app01 import views


urlpatterns = [
    url(r^admin/, admin.site.urls),
    url(r^user/list/$,views.user_list),
    url(r^user/add/$,views.user_add),
]
urls.py

技术分享图片

技术分享图片

 

Django Form 组件

标签:ice   span   lse   use   hid   widget   strong   asc   play   

原文地址:https://www.cnblogs.com/haowen980/p/9526868.html

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