亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

如何在 django admin 中使用 formset

如何在 django admin 中使用 formset

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

3 回答

?
斯蒂芬大帝

TA貢獻1827條經驗 獲得超8個贊

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

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

1. Django Forms的強大之處

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

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轉換而來的
3. 模式二, 在ModelForm中修改驗證

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





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

TA貢獻1842條經驗 獲得超13個贊

首先你要創建自己的Form類,繼承于django的Form,
然后創建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 關注
  • 761 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號