django 在管理字段中显示字符串的最后 3 个字符
django show last 3 char of string in admin fields
数据库
| id | salary_number |
| --- | ------------- |
| 1 | 1042 |
models.py
class user(AbstractUser):
salary_number = models.CharField(max_length=4, unique=True, null=True, blank=True)
def __str__(self):
return f'{self.salary_number[-3:]}'
admin.py
class UserAdmin(admin.ModelAdmin):
fields = ('salary_number[-3:]',)
def get_readonly_fields(self, request, obj=None):
return ['salary_number'] if obj else []
我想在管理字段中显示工资号码:042 而不是 1042。这可能吗?
如何在点击保存新表格后将数字 1 添加到 salary_number?
您可以使用 '__str__'
作为字段:
class UserAdmin(admin.ModelAdmin):
readonly_fields = (<strong>'__str__'</strong>,)
但这让人不清楚这个领域在做什么。可能最好制作一个描述这是薪水号码的最后一位数字的可调用文件:
class UserAdmin(admin.ModelAdmin):
readonly_fields = (<strong>'salary_digits'</strong>,)
@admin.display(description='Salary digits')
def <b>salary_digits</b>(self, obj):
if obj.salary_number is not None:
return obj.salary_number[-3:]
数据库
| id | salary_number |
| --- | ------------- |
| 1 | 1042 |
models.py
class user(AbstractUser):
salary_number = models.CharField(max_length=4, unique=True, null=True, blank=True)
def __str__(self):
return f'{self.salary_number[-3:]}'
admin.py
class UserAdmin(admin.ModelAdmin):
fields = ('salary_number[-3:]',)
def get_readonly_fields(self, request, obj=None):
return ['salary_number'] if obj else []
我想在管理字段中显示工资号码:042 而不是 1042。这可能吗?
如何在点击保存新表格后将数字 1 添加到 salary_number?
您可以使用 '__str__'
作为字段:
class UserAdmin(admin.ModelAdmin):
readonly_fields = (<strong>'__str__'</strong>,)
但这让人不清楚这个领域在做什么。可能最好制作一个描述这是薪水号码的最后一位数字的可调用文件:
class UserAdmin(admin.ModelAdmin):
readonly_fields = (<strong>'salary_digits'</strong>,)
@admin.display(description='Salary digits')
def <b>salary_digits</b>(self, obj):
if obj.salary_number is not None:
return obj.salary_number[-3:]