django中forms和modelform組件的區別


首先,我們來看看modelform的實現

model.py
class Book(models.Model):
    title=models.CharField(max_length=32)
price=models.DecimalField(max_digits=8,decimal_places=2)
pub_date=models.DateField()
publish=models.ForeignKey("Publish")
authors=models.ManyToManyField("Author")
def __str__(self): return self.title

forms.py
#Modelform將一個model轉化成一個form組件
class BookModelForm(forms.ModelForm):
class Meta:
model=models.Book
fields="__all__"
這一步做的事情相當於下面的代碼
'''
class BookModelForm(form.Form):
title=forms.CharField(max_length=32)
price=forms.IntegerField()
pub_date=forms.DateField()

'''

 下面看看forms組件里面的內容:里面包含了很多的類和插件,並且包含了modelform組件

"""
Django validation and HTML form handling.   #Django驗證和HTML表單處理
"""  
from django.core.exceptions import ValidationError # NOQA
from django.forms.boundfield import * # NOQA
from django.forms.fields import * # NOQA
from django.forms.forms import * # NOQA
from django.forms.formsets import * # NOQA
from django.forms.models import * # NOQA
from django.forms.widgets import * # NOQA

 下面定位到modelform:它繼承了BaseModelForm

class ModelForm(six.with_metaclass(ModelFormMetaclass, BaseModelForm)):
    pass

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM