扩展Django PositiveIntegerField以自动填充字符串表示形式吗?

时间:2020-05-11 03:19:43

标签: django django-models

我想知道是否存在扩展我的模型字段之一以自动填充PositiveIntegerField的字符串表示形式的最佳方法

models.py

class User(AbstractUser):
    coupon_code = models.PositiveIntegerField(default=0, help_text='Coupon code',)

admin.py:

class CustomUserAdmin(UserAdmin):
    model = User
    list_display=['username','email','coupon_code',]
    fieldsets = UserAdmin.fieldsets + ( ('Coupon Code', {'fields': ['coupon_code',]} ), )

当前,该字段显示为整数。例如,将42打印为'42'。但是,我想在整个网站上打印时该字段是否填充零,尤其是对于 admin 之类的内置页面,因此显示的42将始终显示为'0000000042',同时保留基础整数数据库中的表示形式。

可以做到吗?

1 个答案:

答案 0 :(得分:0)

zfill是最好的选择,您可以在类中使用制表符属性或其他内容。 https://docs.python.org/3.7/library/stdtypes.html?highlight=zfill#str.zfill

class User(AbstractUser):
    coupon_code = models.PositiveIntegerField(default=0, help_text='Coupon code',)

    @property
    def coupon_code_display(self):
        return self.coupon_code.zfill(10)