Django Form 組件

 

Django Form

Django中爲用戶定義了一個django.forms庫,這個庫能夠方便的進行form類的數據顯示及數據驗證,省去了不少用戶的代碼。django.forms庫用起來也方便,只須要在HTML文件中須要增長<form>tag時,定義相應的Form類就能夠。在如下的實例中,咱們最終的頁面上只有一個<form> tag, 因此咱們只須要定義一個Form類便可。Django 社區的慣例是把Form類單獨放在一個forms.py文件中,咱們最好也遵循這個規則。建立disk\forms.py文件,並寫入html

 

新建一個項目django

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

相關文章
相關標籤/搜索