第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 django admin 中使用 formset

如何在 django admin 中使用 formset

慕田峪4524236 2019-05-31 15:02:30
如何在 django admin 中使用 formset
查看完整描述

3 回答

?
斯蒂芬大帝

TA貢獻1827條經(jīng)驗 獲得超8個贊

Django forms使用容易, 又方便擴展, 因此Django admin和CBVs基本都基于forms使用. 事實上, 由于django forms的強大驗證功能, 大多數(shù)Django API 框架都是用forms作為其驗證的一部分.

雖然django forms的學習需要花費一點時間, 但如果將forms, models和views結(jié)合起來使用, 我們可以花費很少的經(jīng)歷來完成龐大的工作.

1. Django Forms的強大之處

有些django項目并不直接呈現(xiàn)HTML, 二是以API框架的形式存在, 但你可能沒有想到, 在這些API形式的django項目中也用到了django forms. django forms不僅僅是用來呈現(xiàn)HTML的, 他們最強的地方應該是他們的驗證能力. 下面我們就介紹幾種和Django forms結(jié)合使用的模式:

2. 模式一: ModelForm和默認驗證

最簡單的使用模式便是ModelForm和model中定義的默認驗證方式的組合:

# myapp/views.py
from django.views.generic import CreateView, UpdateView

from braces.views import LoginRequiredMixin

from .models import Article

class ArticleCreateView(LoginRequiredMixin, CreateView):
model = Article
fields = ('title', 'slug', 'review_num')

class ArticleUpdateView(LoginRequiredMixin, UpdateView):
model = Article
fields = ('title', 'slug', 'review_num')
正如以上代碼中看到的一樣:

ArticleCreateView和ArticleUpdateView中設置model為Article
兩個view都基于Article model自動生成了ModelForm
這些ModelForm的驗證, 是基于Article model中定義的field轉(zhuǎn)換而來的
3. 模式二, 在ModelForm中修改驗證

在上面的例子中, 如果我們希望每篇article title的開頭都是"new", 那么應該怎么做呢? 首先我們需要建立自定義的驗證(validator):





查看完整回答
反對 回復 2019-06-01
?
紅顏莎娜

TA貢獻1842條經(jīng)驗 獲得超13個贊

首先你要創(chuàng)建自己的Form類,繼承于django的Form,
然后創(chuàng)建form中的字段,例子如下:

from django import forms
class AuthenticationForm(forms.Form):
"""
Base class for authenticating users. Extend this to get a form that accepts
username/password logins.
"""
username = forms.CharField(label=_("Username"), max_length=254)
password = forms.CharField(label=_("Password"), widget=forms.PasswordInput)

error_messages = {
'invalid_login': _("Please enter a correct username and password. "
"Note that both fields may be case-sensitive."),
'no_cookies': _("Your Web browser doesn't appear to have cookies "
"enabled. Cookies are required for logging in."),
'inactive': _("This account is inactive."),
}






查看完整回答
反對 回復 2019-06-01
  • 3 回答
  • 0 關(guān)注
  • 759 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號