Django   发布时间:2022-04-10  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Django内置Admin大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

<div id="post_detail">
<div id="topics">
<div class="post">
<p class="posttitle">


<div class="postBody">
<div id="cnblogs_posT_Body" class="blogpost-body">

Django内置的Admin是对于model中对应的数据表进行增删改查提供的组件,使用方式有:

Django内置Admin

messages django.contrib.sessions
模板的context_processors:
    django.contrib.auth.context_processors.auth
    django.contrib.messages.context_processors.messages

中间件:
    django.contrib.auth.middleware.AuthenticationMiddleware 
    django.contrib.messages.middleware.messageMiddleware</span></pre>

一. 配置路由

当前配置的路由可以创建一些路由映射关系:









二. 定制Admin

在admin.py中只需要讲Mode中的某个类注册,即可在Admin中实现增删改查的功能,如:

LPADding="0"> number1 index0 alt2">1

</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="python plain">admin.site.register(modelS.UserInfo)

</td>

</tr>

</table>

但是,这种方式比较简单,如果想要进行更多的定制操作,需要利用ModelAdmin进行操作,如:

</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="python plain">方式一:


<div class="line number2 index1 alt1"><code class="python spaces">
<code class="python keyword">class <code class="python plain">UserAdmin(admin.ModelAdmin):

<div class="line number3 index2 alt2"><code class="python spaces"><code class="python plain">list_display
<code class="python keyword">= <code class="python plain">(
<code class="python string">'user'<code class="python plain">,
<code class="python string">'pwd'<code class="python plain">,)

<div class="line number4 index3 alt1">

<div class="line number5 index4 alt2"><code class="python spaces"><code class="python plain">admin.site.register(models.UserInfo,UserAdmin) <code class="python comments"># 第一个参数可以是列表

<div class="line number6 index5 alt1"><code class="python spaces">

<div class="line number7 index6 alt2">

<div class="line number8 index7 alt1"><code class="python plain">方式二:

<div class="line number9 index8 alt2"><code class="python spaces"><code class="python decorator">@admin<code class="python plain">.register(models.UserInfo) <code class="python comments"># 第一个参数可以是列表

<div class="line number10 index9 alt1"><code class="python spaces"><code class="python keyword">class <code class="python plain">UserAdmin(admin.ModelAdmin):

<div class="line number11 index10 alt2"><code class="python spaces"><code class="python plain">list_display <code class="python keyword">= <code class="python plain">(<code class="python string">'user'<code class="python plain">,)

</td>

</tr>

</table>

ModelAdmin中提供了大量的可定制功能,如

1.list_display,列表时,定制显示的列。

LPADding="0"> number1 index0 alt2">1
number2 index1 alt1">2
number3 index2 alt2">3
number4 index3 alt1">4
number5 index4 alt2">5
number6 index5 alt1">6

</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="python decorator">@admin<code class="python plain">.register(modelS.UserInfo)
<div class="line number2 index1 alt1"><code class="python keyword">class <code class="python plain">UserAdmin(admin.ModelAdmin):
<div class="line number3 index2 alt2"><code class="python spaces"><code class="python plain">list_display <code class="python keyword">= <code class="python plain">(<code class="python String">'user'<code class="python plain">,<code class="python String">'xxxxx'<code class="python plain">)
<div class="line number4 index3 alt1">
<div class="line number5 index4 alt2"><code class="python spaces"><code class="python keyword">def <code class="python plain">xxxxx(<code class="python color1">self<code class="python plain">,obj):
<div class="line number6 index5 alt1"><code class="python spaces"><code class="python keyword">return <code class="python String">"xxxxx"

</td>

</tr>

</table>

2.list_display_links,列表时,定制列可以点击跳转。

</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="python decorator">@admin<code class="python plain">.register(models.UserInfo)


<div class="line number2 index1 alt1"><code class="python keyword">class <code class="python plain">UserAdmin(admin.ModelAdmin):

<div class="line number3 index2 alt2"><code class="python spaces"><code class="python plain">list_display <code class="python keyword">= <code class="python plain">(<code class="python string">'user'<code class="python plain">,<code class="python string">'xxxxx'<code class="python plain">)

<div class="line number4 index3 alt1"><code class="python spaces"><code class="python plain">list_display_links <code class="python keyword">= <code class="python plain">(<code class="python string">'pwd'<code class="python plain">,)

</td>

</tr>

</table>

3.list_filter,列表时,定制右侧快速筛选。

LPADding="0"> number1 index0 alt2">1
number2 index1 alt1">2
number3 index2 alt2">3
number4 index3 alt1">4
number5 index4 alt2">5
number6 index5 alt1">6
number7 index6 alt2">7
number8 index7 alt1">8
number9 index8 alt2">9
number10 index9 alt1">10
number11 index10 alt2">11
number12 index11 alt1">12
number13 index12 alt2">13
number14 index13 alt1">14
number15 index14 alt2">15
number16 index15 alt1">16
number17 index16 alt2">17
number18 index17 alt1">18
number19 index18 alt2">19
number20 index19 alt1">20
number21 index20 alt2">21
number22 index21 alt1">22
number23 index22 alt2">23
number24 index23 alt1">24
number25 index24 alt2">25
number26 index25 alt1">26
number27 index26 alt2">27
number28 index27 alt1">28
number29 index28 alt2">29
number30 index29 alt1">30

</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="python keyword">from <code class="python plain">django.utils.translation <code class="python keyword">import <code class="python plain">ugettextlazy as
<div class="line number2 index1 alt1">
<div class="line number3 index2 alt2"><code class="python decorator">@admin<code class="python plain">.register(modelS.UserInfo)
<div class="line number4 index3 alt1"><code class="python keyword">class <code class="python plain">UserAdmin(admin.ModelAdmin):
<div class="line number5 index4 alt2"><code class="python spaces"><code class="python plain">listdisplay <code class="python keyword">= <code class="python plain">(<code class="python String">'user'<code class="python plain">,<code class="python String">'pwd'<code class="python plain">)
<div class="line number6 index5 alt1">
<div class="line number7 index6 alt2"><code class="python spaces"><code class="python keyword">class <code class="python plain">Ugg(admin.SimpleListFilter):
<div class="line number8 index7 alt1"><code class="python spaces"><code class="python plain">title <code class="python keyword">= <code class="python plain">
(<code class="python String">'decade born'<code class="python plain">)
<div class="line number9 index8 alt2"><code class="python spaces"><code class="python plain">parameter_name <code class="python keyword">= <code class="python String">'xxxxxx'
<div class="line number10 index9 alt1">
<div class="line number11 index10 alt2"><code class="python spaces"><code class="python keyword">def <code class="python plain">lookups(<code class="python color1">self<code class="python plain">,request,model_admin):
<div class="line number12 index11 alt1"><code class="python spaces"><code class="python comments">"""
<div class="line number13 index12 alt2"><code class="python spaces"><code class="python comments">显示筛选选项
<div class="line number14 index13 alt1"><code class="python spaces"><code class="python comments">:param request:
<div class="line number15 index14 alt2"><code class="python spaces"><code class="python comments">:param model_admin:
<div class="line number16 index15 alt1"><code class="python spaces"><code class="python comments">:return:
<div class="line number17 index16 alt2"><code class="python spaces"><code class="python comments">"""
<div class="line number18 index17 alt1"><code class="python spaces"><code class="python keyword">return <code class="python plain">modelS.UserGroup.objects.values_list(<code class="python String">'id'<code class="python plain">,<code class="python String">'title'<code class="python plain">)
<div class="line number19 index18 alt2">
<div class="line number20 index19 alt1"><code class="python spaces"><code class="python keyword">def <code class="python plain">queryset(<code class="python color1">self<code class="python plain">,queryset):
<div class="line number21 index20 alt2"><code class="python spaces"><code class="python comments">"""
<div class="line number22 index21 alt1"><code class="python spaces"><code class="python comments">点击查询时,进行筛选
<div class="line number23 index22 alt2"><code class="python spaces"><code class="python comments">:param request:
<div class="line number24 index23 alt1"><code class="python spaces"><code class="python comments">:param queryset:
<div class="line number25 index24 alt2"><code class="python spaces"><code class="python comments">:return:
<div class="line number26 index25 alt1"><code class="python spaces"><code class="python comments">"""
<div class="line number27 index26 alt2"><code class="python spaces"><code class="python plain">v <code class="python keyword">= <code class="python color1">self<code class="python plain">.value()
<div class="line number28 index27 alt1"><code class="python spaces"><code class="python keyword">return <code class="python plain">queryset.<code class="python functions">filter<code class="python plain">(ug<code class="python keyword">=<code class="python plain">v)
<div class="line number29 index28 alt2">
<div class="line number30 index29 alt1"><code class="python spaces"><code class="python plain">list_filter <code class="python keyword">= <code class="python plain">(<code class="python String">'user'<code class="python plain">,Ugg,)

</td>

</tr>

</table>

4.list_SELEct_related,列表时,连表查询是否自动SELEct_related

5. 分页相关

</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="python comments"># 分页,每页显示条数


<div class="line number2 index1 alt1"><code class="python spaces"><code class="python plain">list_per_page <code class="python keyword">= <code class="python value">100

<div class="line number3 index2 alt2">

<div class="line number4 index3 alt1"><code class="python comments"># 分页,显示全部(真实数据<该值时,才会有显示全部)

<div class="line number5 index4 alt2"><code class="python spaces"><code class="python plain">list_max_show_all <code class="python keyword">= <code class="python value">200

<div class="line number6 index5 alt1">

<div class="line number7 index6 alt2"><code class="python comments"># 分页插件

<div class="line number8 index7 alt1"><code class="python spaces"><code class="python plain">paginator <code class="python keyword">= <code class="python plain">Paginator

</td>

</tr>

</table>

6. list_editable,列表时,可以编辑的列

LPADding="0"> number1 index0 alt2">1
number2 index1 alt1">2
number3 index2 alt2">3
number4 index3 alt1">4

</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="python decorator">@admin<code class="python plain">.register(modelS.UserInfo)
<div class="line number2 index1 alt1"><code class="python keyword">class <code class="python plain">UserAdmin(admin.ModelAdmin):
<div class="line number3 index2 alt2"><code class="python spaces"><code class="python plain">list_display <code class="python keyword">= <code class="python plain">(<code class="python String">'user'<code class="python plain">,<code class="python String">'ug'<code class="python plain">,)
<div class="line number4 index3 alt1"><code class="python spaces"><code class="python plain">list_editable <code class="python keyword">= <code class="python plain">(<code class="python String">'ug'<code class="python plain">,)

</td>

</tr>

</table>

7.search_fields,列表时,模糊搜索的功能

</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="python decorator">@admin<code class="python plain">.register(models.UserInfo)


<div class="line number2 index1 alt1"><code class="python keyword">class <code class="python plain">UserAdmin(admin.ModelAdmin):

<div class="line number3 index2 alt2"><code class="python spaces">

<div class="line number4 index3 alt1"><code class="python spaces"><code class="python plain">search_fields <code class="python keyword">= <code class="python plain">(<code class="python string">'user'<code class="python plain">,<code class="python string">'pwd'<code class="python plain">)

</td>

</tr>

</table>

8.date_hierarchy,列表时,对Date和DateTime类型进行搜索

LPADding="0"> number1 index0 alt2">1
number2 index1 alt1">2
number3 index2 alt2">3
number4 index3 alt1">4

</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="python decorator">@admin<code class="python plain">.register(modelS.UserInfo)
<div class="line number2 index1 alt1"><code class="python keyword">class <code class="python plain">UserAdmin(admin.ModelAdmin):
<div class="line number3 index2 alt2">
<div class="line number4 index3 alt1"><code class="python spaces"><code class="python plain">date_hierarchy <code class="python keyword">= <code class="python String">'ctime'

</td>

</tr>

</table>

9.preserve_filters,详细页面,删除、修改,更新后跳转回列表后,是否保留原搜索条件

10.save_as = false,详细页面,按钮为“Sava as new” 或 “Sava and add another”

11.save_as_conTinue = True,点击保存并继续编辑

</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="python plain">save_as_continue <code class="python keyword">= <code class="python color1">True


<div class="line number2 index1 alt1">

<div class="line number3 index2 alt2"><code class="python comments"># 如果 save_as=True,save_as_continue = True, 点击Sava as new 按钮后继续编辑。

<div class="line number4 index3 alt1"><code class="python comments"># 如果 save_as=True,save_as_continue = False,点击Sava as new 按钮后返回列表。

<div class="line number5 index4 alt2">

<div class="line number6 index5 alt1"><code class="python plain">New <code class="python keyword">in <code class="python plain">Django <code class="python value">1.10<code class="python plain">.

</td>

</tr>

</table>

12.save_on_top = False,详细页面,在页面上方是否也显示保存删除等按钮

13.inlines,详细页面,如果有其他表和当前表做FK,那么详细页面可以进行动态增加和删除

LPADding="0"> number1 index0 alt2">1
number2 index1 alt1">2
number3 index2 alt2">3
number4 index3 alt1">4
number5 index4 alt2">5
number6 index5 alt1">6
number7 index6 alt2">7
number8 index7 alt1">8

</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="python keyword">class <code class="python plain">UserInfoInline(admin.StackedInlinE): <code class="python comments"># TabularInline
<div class="line number2 index1 alt1"><code class="python spaces"><code class="python plain">extra <code class="python keyword">= <code class="python value">0
<div class="line number3 index2 alt2"><code class="python spaces"><code class="python plain">model <code class="python keyword">= <code class="python plain">modelS.UserInfo
<div class="line number4 index3 alt1">
<div class="line number5 index4 alt2">
<div class="line number6 index5 alt1"><code class="python keyword">class <code class="python plain">GroupAdminMode(admin.ModelAdmin):
<div class="line number7 index6 alt2"><code class="python spaces"><code class="python plain">list_display <code class="python keyword">= <code class="python plain">(<code class="python String">'id'<code class="python plain">,<code class="python String">'title'<code class="python plain">,)
<div class="line number8 index7 alt1"><code class="python spaces"><code class="python plain">inlines <code class="python keyword">= <code class="python plain">[UserInfoInline,]

</td>

</tr>

</table>

14. action,列表时,定制action中的操作

</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="python decorator">@admin<code class="python plain">.register(models.UserInfo)


<div class="line number2 index1 alt1"><code class="python keyword">class <code class="python plain">UserAdmin(admin.ModelAdmin):

<div class="line number3 index2 alt2">

<div class="line number4 index3 alt1"><code class="python spaces"><code class="python comments"># 定制Action行为具体方法

<div class="line number5 index4 alt2"><code class="python spaces"><code class="python keyword">def <code class="python plain">func(<code class="python color1">self<code class="python plain">,queryset):

<div class="line number6 index5 alt1"><code class="python spaces"><code class="python functions">print<code class="python plain">(<code class="python color1">self<code class="python plain">,queryset)

<div class="line number7 index6 alt2"><code class="python spaces"><code class="python functions">print<code class="python plain">(request.POST.getlist(<code class="python string">'_selected_action'<code class="python plain">))

<div class="line number8 index7 alt1">

<div class="line number9 index8 alt2"><code class="python spaces"><code class="python plain">func.short_description <code class="python keyword">= <code class="python string">"中文显示自定义Actions"

<div class="line number10 index9 alt1"><code class="python spaces"><code class="python plain">actions <code class="python keyword">= <code class="python plain">[func,]

<div class="line number11 index10 alt2">

<div class="line number12 index11 alt1"><code class="python spaces"><code class="python comments"># Action选项都是在页面上方显示

<div class="line number13 index12 alt2"><code class="python spaces"><code class="python plain">actions_on_top <code class="python keyword">= <code class="python color1">True

<div class="line number14 index13 alt1"><code class="python spaces"><code class="python comments"># Action选项都是在页面下方显示

<div class="line number15 index14 alt2"><code class="python spaces"><code class="python plain">actions_on_bottom <code class="python keyword">= <code class="python color1">False

<div class="line number16 index15 alt1">

<div class="line number17 index16 alt2"><code class="python spaces"><code class="python comments"># 是否显示选择个数

<div class="line number18 index17 alt1"><code class="python spaces"><code class="python plain">actions_selection_counter <code class="python keyword">= <code class="python color1">True

</td>

</tr>

</table>

15. 定制HTML模板

LPADding="0"> number1 index0 alt2">1
number2 index1 alt1">2
number3 index2 alt2">3
number4 index3 alt1">4
number5 index4 alt2">5
number6 index5 alt1">6

</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="python plain">add_form_template <code class="python keyword">= <code class="python color1">None
<div class="line number2 index1 alt1"><code class="python plain">change_form_template <code class="python keyword">= <code class="python color1">None
<div class="line number3 index2 alt2"><code class="python plain">change_list_template <code class="python keyword">= <code class="python color1">None
<div class="line number4 index3 alt1"><code class="python plain">delete_confirmation_template <code class="python keyword">= <code class="python color1">None
<div class="line number5 index4 alt2"><code class="python plain">delete_SELEcted_confirmation_template <code class="python keyword">= <code class="python color1">None
<div class="line number6 index5 alt1"><code class="python plain">object_history_template <code class="python keyword">= <code class="python color1">None

</td>

</tr>

</table>

16.raw_id_fields,详细页面,针对FK和M2M字段变成以Input框形式

</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="python decorator">@admin<code class="python plain">.register(models.UserInfo)


<div class="line number2 index1 alt1"><code class="python keyword">class <code class="python plain">UserAdmin(admin.ModelAdmin):

<div class="line number3 index2 alt2">

<div class="line number4 index3 alt1"><code class="python spaces"><code class="python plain">raw_id_fields <code class="python keyword">= <code class="python plain">(<code class="python string">'FK字段'<code class="python plain">,<code class="python string">'M2M字段'<code class="python plain">,)

</td>

</tr>

</table>

17.fields,详细页面时,显示字段的字段

LPADding="0"> number1 index0 alt2">1
number2 index1 alt1">2
number3 index2 alt2">3

</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="python decorator">@admin<code class="python plain">.register(modelS.UserInfo)
<div class="line number2 index1 alt1"><code class="python keyword">class <code class="python plain">UserAdmin(admin.ModelAdmin):
<div class="line number3 index2 alt2"><code class="python spaces"><code class="python plain">fields <code class="python keyword">= <code class="python plain">(<code class="python String">'user'<code class="python plain">,)

</td>

</tr>

</table>

18.exclude,详细页面时,排除的字段

</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="python decorator">@admin<code class="python plain">.register(models.UserInfo)


<div class="line number2 index1 alt1"><code class="python keyword">class <code class="python plain">UserAdmin(admin.ModelAdmin):

<div class="line number3 index2 alt2"><code class="python spaces"><code class="python plain">exclude <code class="python keyword">= <code class="python plain">(<code class="python string">'user'<code class="python plain">,)

</td>

</tr>

</table>

19.readonly_fields,详细页面时,只读字段

LPADding="0"> number1 index0 alt2">1
number2 index1 alt1">2
number3 index2 alt2">3

</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="python decorator">@admin<code class="python plain">.register(modelS.UserInfo)
<div class="line number2 index1 alt1"><code class="python keyword">class <code class="python plain">UserAdmin(admin.ModelAdmin):
<div class="line number3 index2 alt2"><code class="python spaces"><code class="python plain">readonly_fields <code class="python keyword">= <code class="python plain">(<code class="python String">'user'<code class="python plain">,)

</td>

</tr>

</table>

20.fieldsets,详细页面时,使用fieldsets标签对数据进行分割显示

4191" class="syntaxhighlighter python">

</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="python decorator">@admin<code class="python plain">.register(models.UserInfo)


<div class="line number2 index1 alt1"><code class="python keyword">class <code class="python plain">UserAdmin(admin.ModelAdmin):

<div class="line number3 index2 alt2"><code class="python spaces"><code class="python plain">fieldsets <code class="python keyword">= <code class="python plain">(

<div class="line number4 index3 alt1"><code class="python spaces"><code class="python plain">(<code class="python string">'基本数据'<code class="python plain">,{

<div class="line number5 index4 alt2"><code class="python spaces"><code class="python string">'fields'<code class="python plain">: (<code class="python string">'user'<code class="python plain">,<code class="python string">'ctime'<code class="python plain">,)

<div class="line number6 index5 alt1"><code class="python spaces"><code class="python plain">}),

<div class="line number7 index6 alt2"><code class="python spaces"><code class="python plain">(<code class="python string">'其他'<code class="python plain">,{

<div class="line number8 index7 alt1"><code class="python spaces"><code class="python string">'classes'<code class="python plain">: (<code class="python string">'collapse'<code class="python plain">,<code class="python string">'wide'<code class="python plain">,<code class="python string">'extrapretty'<code class="python plain">),<code class="python comments"># 'collapse','wide','extrapretty'

<div class="line number9 index8 alt2"><code class="python spaces"><code class="python string">'fields'<code class="python plain">: (<code class="python string">'user'<code class="python plain">,<code class="python string">'pwd'<code class="python plain">),

<div class="line number10 index9 alt1"><code class="python spaces"><code class="python plain">}),

<div class="line number11 index10 alt2"><code class="python spaces"><code class="python plain">)

</td>

</tr>

</table>

21. 详细页面时,M2M显示时,数据移动选择(方向:上下和左右)

LPADding="0"> number1 index0 alt2">1
number2 index1 alt1">2
number3 index2 alt2">3

</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="python decorator">@admin<code class="python plain">.register(modelS.UserInfo)
<div class="line number2 index1 alt1"><code class="python keyword">class <code class="python plain">UserAdmin(admin.ModelAdmin):
<div class="line number3 index2 alt2"><code class="python spaces"><code class="python plain">filter_vertical <code class="python keyword">= <code class="python plain">(<code class="python String">"m2m字段"<code class="python plain">,) <code class="python comments"># 或filter_horizontal = ("m2m字段",)

</td>

</tr>

</table>

22.ordering,列表时,数据排序规则

</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="python decorator">@admin<code class="python plain">.register(models.UserInfo)


<div class="line number2 index1 alt1"><code class="python keyword">class <code class="python plain">UserAdmin(admin.ModelAdmin):

<div class="line number3 index2 alt2"><code class="python spaces"><code class="python plain">ordering <code class="python keyword">= <code class="python plain">(<code class="python string">'-id'<code class="python plain">,)

<div class="line number4 index3 alt1"><code class="python spaces"><code class="python plain">或

<div class="line number5 index4 alt2"><code class="python spaces"><code class="python keyword">def <code class="python plain">get_ordering(<code class="python color1">self<code class="python plain">,request):

<div class="line number6 index5 alt1"><code class="python spaces"><code class="python keyword">return <code class="python plain">[<code class="python string">'-id'<code class="python plain">,]

</td>

</tr>

</table>

23.view_on_site,编辑时,是否在页面上显示view on set

LPADding="0"> number1 index0 alt2">1
number2 index1 alt1">2
number3 index2 alt2">3
number4 index3 alt1">4

</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="python plain">view_on_site <code class="python keyword">= <code class="python color1">false
<div class="line number2 index1 alt1"><code class="python plain">或
<div class="line number3 index2 alt2"><code class="python keyword">def <code class="python plain">view_on_site(<code class="python color1">self<code class="python plain">,obj):
<div class="line number4 index3 alt1"><code class="python spaces"><code class="python keyword">return <code class="python String">'https://www.baidu.com'

</td>

</tr>

</table>

24.radio_fields,详细页面时,使用radio显示选项(FK默认使用SELEct)

</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="python plain">radio_fields <code class="python keyword">= <code class="python plain">{<code class="python string">"ug"<code class="python plain">: admin.VERTICAL} <code class="python comments"># 或admin.HORIZONTAL

</td>

</tr>

</table>

25.show_full_result_count = True,列表时,模糊搜索后面显示的数据个数样式

LPADding="0"> number1 index0 alt2">1
number2 index1 alt1">2
number3 index2 alt2">3
number4 index3 alt1">4
number5 index4 alt2">5

</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="python decorator">@admin<code class="python plain">.register(modelS.UserInfo)
<div class="line number2 index1 alt1"><code class="python keyword">class <code class="python plain">UserAdmin(admin.ModelAdmin):
<div class="line number3 index2 alt2"><code class="python spaces"><code class="python comments"># show_full_result_count = True # 1 result (12 @R_373_10586@l)
<div class="line number4 index3 alt1"><code class="python spaces"><code class="python comments"># show_full_result_count = false # 1 result (Show all)
<div class="line number5 index4 alt2"><code class="python spaces"><code class="python plain">search_fields <code class="python keyword">= <code class="python plain">(<code class="python String">'user'<code class="python plain">,)

</td>

</tr>

</table>

26. formfield_overrides = {},详细页面时,指定现实插件

@L_874_13@
LPADding="0"> number1 index0 alt2">1
number2 index1 alt1">2
number3 index2 alt2">3
number4 index3 alt1">4

</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="python decorator">@admin<code class="python plain">.register(modelS.UserInfo)
<div class="line number2 index1 alt1"><code class="python keyword">class <code class="python plain">UserAdmin(admin.ModelAdmin):
<div class="line number3 index2 alt2">
<div class="line number4 index3 alt1"><code class="python spaces"><code class="python plain">prepopulated_fields <code class="python keyword">= <code class="python plain">{<code class="python String">"email"<code class="python plain">: (<code class="python String">"user"<code class="python plain">,<code class="python String">"pwd"<code class="python plain">,)}

</td>

</tr>

</table>

字段的值会在输入:user、pwd时自动填充

28. form = ModelForm,用于定制用户请求时候表单验证

</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="python keyword">from <code class="python plain">app01 <code class="python keyword">import <code class="python plain">models


<div class="line number2 index1 alt1"><code class="python keyword">from <code class="python plain">django.forms <code class="python keyword">import <code class="python plain">ModelForm

<div class="line number3 index2 alt2"><code class="python keyword">from <code class="python plain">django.forms <code class="python keyword">import <code class="python plain">fields

<div class="line number4 index3 alt1">

<div class="line number5 index4 alt2">

<div class="line number6 index5 alt1"><code class="python keyword">class <code class="python plain">MyForm(ModelForm):

<div class="line number7 index6 alt2"><code class="python spaces"><code class="python plain">others <code class="python keyword">= <code class="python plain">fields.CharField()

<div class="line number8 index7 alt1">

<div class="line number9 index8 alt2"><code class="python spaces"><code class="python keyword">class <code class="python plain">Meta:

<div class="line number10 index9 alt1"><code class="python spaces"><code class="python plain">model <code class="python keyword">= <code class="python plain">models <code class="python keyword">= <code class="python plain">models.UserInfo

<div class="line number11 index10 alt2"><code class="python spaces"><code class="python plain">fields <code class="python keyword">= <code class="python string">"all"

<div class="line number12 index11 alt1">

<div class="line number13 index12 alt2"><code class="python decorator">@admin<code class="python plain">.register(models.UserInfo)

<div class="line number14 index13 alt1"><code class="python keyword">class <code class="python plain">UserAdmin(admin.ModelAdmin):

<div class="line number15 index14 alt2">

<div class="line number16 index15 alt1"><code class="python spaces"><code class="python plain">form <code class="python keyword">= <code class="python plain">MyForm

</td>

</tr>

</table>

29. empty_value_display = "列数据为空时,显示默认值"

LPADding="0"> number1 index0 alt2">1
number2 index1 alt1">2
number3 index2 alt2">3
number4 index3 alt1">4
number5 index4 alt2">5
number6 index5 alt1">6
number7 index6 alt2">7
number8 index7 alt1">8
number9 index8 alt2">9

</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="python decorator">@admin<code class="python plain">.register(modelS.UserInfo)
<div class="line number2 index1 alt1"><code class="python keyword">class <code class="python plain">UserAdmin(admin.ModelAdmin):
<div class="line number3 index2 alt2"><code class="python spaces"><code class="python plain">empty_value_display <code class="python keyword">= <code class="python String">"列数据为空时,默认显示"
<div class="line number4 index3 alt1">
<div class="line number5 index4 alt2"><code class="python spaces"><code class="python plain">list_display <code class="python keyword">= <code class="python plain">(<code class="python String">'user'<code class="python plain">,<code class="python String">'up'<code class="python plain">)
<div class="line number6 index5 alt1">
<div class="line number7 index6 alt2"><code class="python spaces"><code class="python keyword">def <code class="python plain">up(<code class="python color1">self<code class="python plain">,obj):
<div class="line number8 index7 alt1"><code class="python spaces"><code class="python keyword">return <code class="python plain">obj.user
<div class="line number9 index8 alt2"><code class="python spaces"><code class="python plain">up.empty_value_display <code class="python keyword">= <code class="python String">"指定列数据为空时,默认显示"

</td>

</tr>

</table>

</div>

大佬总结

以上是大佬教程为你收集整理的Django内置Admin全部内容,希望文章能够帮你解决Django内置Admin所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: