django admin site配置(二)

25 篇文章 1 订阅
9 篇文章 0 订阅

1.

ModelAdmin.inlines

将有外键的子类包含进视图 ,实例:

class Author(models.Model):
   name = models.CharField(max_length=100)

class Book(models.Model):
   author = models.ForeignKey(Author)
   title = models.CharField(max_length=100)
class BookInline(admin.TabularInline):
    model = Book

class AuthorAdmin(admin.ModelAdmin):
    inlines = [
        BookInline,
    ]
2.

list_display = ('first_name', 'last_name')
列表显示字段。记住:他不会显示manytomany字段

特殊用法:

class Person(models.Model):
    first_name = models.CharField(max_length=50)
    birthday = models.DateField()

    def born_in_fifties(self):
        return self.birthday.strftime('%Y')[:3] == '195'
    born_in_fifties.boolean = True

class PersonAdmin(admin.ModelAdmin):
    list_display = ('name', 'born_in_fifties')
将生日为195的设置为true,并且显示对号或者横线。 用途,学生成绩是否及格,当大于60设置为true。

list_display = ('__unicode__', 'some_other_field')
colored_first_name.admin_order_field = 'first_name'
设置字段排序

list_display_links = ('first_name', 'last_name')
设置超链接字段


3.ModelAdmin.list_editable

设置列表字段是否可以编辑,常用语文章更改目录,修改某些非外键字段。不过外键也可以修改,如果某个字段设置为links,则该字段不能被修改

#    raw_id_fields = ('goods',)
#    list_editable=('goods','price','num','producer','in_times','is_active')


4.

list_filter = ('is_staff', 'company')
过滤字段。

自定义过滤字段:

from datetime import date

from django.utils.translation import ugettext_lazy as _
from django.contrib.admin import SimpleListFilter

class DecadeBornListFilter(SimpleListFilter):
    title = _('decade born')#过滤标题

    # 设置url参数,?decade='80s'
    parameter_name = 'decade'

    def lookups(self, request, model_admin):
        """
        值,显示属性
        """
        return (
            ('80s', _('in the eighties')),
            ('90s', _('in the nineties')),
        )

    def queryset(self, request, queryset):
        """
	过滤
        """
        if self.value() == '80s':
            return queryset.filter(birthday__gte=date(1980, 1, 1),
                                    birthday__lte=date(1989, 12, 31))
        if self.value() == '90s':
            return queryset.filter(birthday__gte=date(1990, 1, 1),
                                    birthday__lte=date(1999, 12, 31))

class PersonAdmin(ModelAdmin):
    list_filter = (DecadeBornListFilter,)

from django.contrib.admin import BooleanFieldListFilter

class PersonAdmin(ModelAdmin):
    list_filter = (
        ('is_staff', BooleanFieldListFilter),
    )
boolean类型的filter


class FilterWithCustomTemplate(SimpleListFilter):
    template = "custom_template.html"
自定义过滤器模板默认模板 admin/filter.html


5.

list_max_show_all

显示全部 最大数据,总数据超过该数据将不显示显示全部

list_per_page

没页显示数据条数

ordering

排序

class ArticleAdmin(admin.ModelAdmin):
    prepopulated_fields = {"字段1": ("ziduan2",)}
当字段1填写数据的同时,字段2也同时被填充,数据一致

class PersonAdmin(admin.ModelAdmin):
    radio_fields = {"group": admin.VERTICAL}
单选按钮,适用于开关(必须填)。如是否有效


class ArticleAdmin(admin.ModelAdmin):
    raw_id_fields = ("newspaper",)
外键选择


from django.utils.html import format_html_join
from django.utils.safestring import mark_safe

class PersonAdmin(ModelAdmin):
    readonly_fields = ('address_report',)

    def address_report(self, instance):
        # assuming get_full_address() returns a list of strings
        # for each line of the address and you want to separate each
        # line by a linebreak
        return format_html_join(
            mark_safe('<br/>'),
            '{0}',
            ((line,) for line in instance.get_full_address()),
        ) or "<span class='errors'>I can't determine this address.</span>"

    # short_description functions like a model field's verbose_name
    address_report.short_description = "Address"
    # in this example, we have used HTML tags in the output
    address_report.allow_tags = True
只读,注意:可以向模板页面一样格式化数据,同时给只读属性增加自定义样式。

6.

6.ModelAdmin.save_as

当是修改数据的时候,将新增一个替换为保存为新的,并且旧的不替换,新增id保存

7.

ModelAdmin.save_on_top

设置保存按钮到顶部!

8.

search_fields = ['foreign_key__related_fieldname']
设置搜索。













  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Django AdminDjango 框架中的一个强大的管理界面,可以用于管理网站的后台数据。使用 Django Admin 登录,需要按照以下步骤进行操作: 1. 启动 Django 项目,确保你已经创建了项目,并且在项目的 settings.py 文件中配置了数据库连接信息。 2. 在项目的 urls.py 文件中,引入 Django Admin 的路由配置。通常情况下,Django Admin 的路由配置已经在默认的 urls.py 文件中设置好,你只需要将这些配置引入即可。 ```python from django.contrib import admin from django.urls import path urlpatterns = [ path('admin/', admin.site.urls), # 其他路由配置 ] ``` 3. 在项目的终端中运行 `python manage.py runserver` 命令,启动开发服务器。 4. 在浏览器中访问 `http://localhost:8000/admin/`,会进入 Django Admin 的登录页面。 5. 在登录页面中,输入你在 Django 项目中创建的超级用户的用户名和密码,点击登录按钮。 6. 如果用户名和密码正确,会跳转到 Django Admin 的管理界面,你可以在这里管理和操作你的后台数据。 请注意,登录 Django Admin 需要一个超级用户账号,这个账号可以在项目启动后通过命令 `python manage.py createsuperuser` 来创建。创建超级用户时,需要输入用户名、电子邮件和密码等信息。 总结起来,要登录 Django Admin,你需要创建一个超级用户,并在登录页面中输入正确的用户名和密码,然后你就可以通过 Django Admin 来管理和操作你的后台数据了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值