django-admin修改顯示的控件形式


django的CharField在admin后台的默認展示方式時input的形式,有時我們需要修改成textarea用來優化輸入。

我們可以在admin.py中做處理,以下例子:

第一種方式我們定義一下fromfield_overrides

from django.contrib import admin class SchoolAdmin(admin.ModelAdmin):    formfield_overrides = {models.CharField: {'widget': forms.Textarea},} admin.site.register(School, SchoolAdmin)

這樣之后,school的編輯頁面的所有charfield的編輯方式都將變為textarea的形式,但我們也許需要指定特定的字段修改type

 

第二種 重寫formfield_for_dbfield方法

class SchoolAdmin(admin.ModelAdmin):    # formfield_overrides = {models.CharField: {'widget': forms.Textarea},}    def formfield_for_dbfield(self, db_field, **kwargs):       formfield = super(SchoolAdmin, self).formfield_for_dbfield(db_field, **kwargs)       if db_field.name in ['intro', 'base_info']:          formfield.widget = forms.Textarea(attrs=formfield.widget.attrs)       return formfield admin.site.register(School, SchoolAdmin)

    做一個fieldname的判斷處理,這樣就可以指定字段為指定類型

django修改admin下編輯的控件形式 

 


免責聲明!

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



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