django admin 写XxxxxAdmin时的一些偷懒行为:以tuple的形式返回所有属性(也可以自定义数量)

目录

Model 部分 

Admin部分


Model 部分 

class Language(models.Model):
    """
    语言
    """
    id = models.AutoField(primary_key=True, blank=False)
    language_name = models.CharField('语言名称', default='', max_length=50)
    inuse = models.BooleanField(default=True, verbose_name='是否正在使用')
    users = models.BigIntegerField('使用人口数量', default=0)
    use_time = models.IntegerField('使用时长(年)', default=0)
    origin = models.CharField('起源地', max_length=200, default='')
    # ancient_civilization = models.ForeignKey(AncientCivilization)
    explain = models.TextField('语言介绍', default='', max_length=2000)
    user = models.ForeignKey(UserInfo, on_delete=models.SET_NULL, related_name='language_operator', verbose_name='操作人',
                             to_field='id',
                             null=True)
    create_time = models.DateTimeField('生成时间', default=timezone.now)
    modify_time = models.DateTimeField('修改时间', auto_now=True)  # 使用Model.save()来更新才会更新注意

    def __str__(self, print_all=False):  # 定义打印对象时打印的字符串
        if print_all:
            # return ' '.join(('%s' % item for item in self.__dict__.values()))
            return str(self.__dict__)
        else:
            return self.language_name

Admin部分:

1:10这个10代表着Language这个model属性的数量,以tuple的形式返回属性的元组,这样就不用手动将属性一个一个copy过来了,当然了这样也将不方便Main 和 Advance,以及控制显示属性的数量。

class LanguageAdmin(admin.ModelAdmin):
    obj = Language()
    list_display = tuple(obj.__dir__()[1:10])
    readonly_fields = ('create_time', 'modify_time',)
    list_display_links = ('language_name',)
    search_fields = ('id', 'language_name', 'user')


admin.site.register(Language, LanguageAdmin)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

千码君2016

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值