5.3.xadmin的使用

在之前的章节中,我们已完成EmailVerifyRecord model的编码,本节中,我们将注册EmailVerifyRecord 模块到xadmin中

EmailVerifyRecord 内容如下:

users/models.py

from datetime import datetime

from django.contrib.auth.models import AbstractUser
from django.db import models


class EmailVerifyRecord(models.Model):
    code = models.CharField(max_length=20, verbose_name='验证码')
    email = models.EmailField(max_length=50, verbose_name='邮箱')
    send_type = models.CharField(max_length=8, choices=(('register', '注册'), ('forget', '找回密码')), verbose_name='验证码类型')
    send_time = models.DateField(default=datetime.now, verbose_name='发送时间')

    class Meta:
        verbose_name = '邮箱验证码'
        verbose_name_plural = verbose_name

    def __str__(self):
        return '{0}({1})'.format(self.code, self.email)

步骤

注册module到xadmin后台

应用apps下新建adminx.py,内容如下:

users/adminx.py

import xadmin

from users.models import EmailVerifyRecord


class EmailVerifyRecordAdmin(object):
    pass


xadmin.site.retister(EmailVerifyRecord, EmailVerifyRecordAdmin)

配置显示项

通过list_display配置显示项

import xadmin

from users.models import EmailVerifyRecord


class EmailVerifyRecordAdmin(object):
    list_display = ['code', 'email', 'send_type', 'send_time']


xadmin.site.retister(EmailVerifyRecord, EmailVerifyRecordAdmin)

配置查找项

通过search_fields配置查找项

通过list_filter配置筛选项

import xadmin

from users.models import EmailVerifyRecord


class EmailVerifyRecordAdmin(object):
    list_display = ['code', 'email', 'send_type', 'send_time']
    search_fields = ['code', 'email', 'send_type']
    list_filter = ['code', 'email', 'send_type', 'send_time']


xadmin.site.retister(EmailVerifyRecord, EmailVerifyRecordAdmin)

提示:若要通过外键的表字段筛选,请使用“外键__外键字段”的形式,如下

list_filter = ['counrse__name']

Last updated

Was this helpful?