如何在 django admin 中进行自动生成(自动填充和递增)
How to make auto-genertion(auto-fill and increment) in django admin
我想让代码字段在 django 管理中自动填充和自动递增。
models.py
class GeneralDocumentType(models.Model):
code = models.CharField(max_length=10, null=False, unique=True)
name = models.CharField(max_length=100, null=False, unique=True)
description = models.TextField(blank=True, null=True)
def __str__(self):
return self.name
我想显示我的代码字段 default=DOC001,它会在添加数据之前显示递增 1 user.How 我可以实现吗?..
Django ModelAdmin
支持 get_changeform_initial_data。在您的管理员中,您可以覆盖此方法以根据最新的 ID 信息获取值。例如:
class YourModelAdmin(admin.ModelAdmin):
...
def get_changeform_initial_data(self, request):
# getting the latest id
try:
latest_document_type = GeneralDocumentType.object.latest('id')
latest_id = latest_document_type.id + 1
except GeneralDocumentType.DoesNotExist:
# incase there no object yet
latest_id = 0
return {'code': f'DOC{latest_id}'}
注意:这仅适用于 adding
新对象 ModelAdmin
。不适用于 InlineModelAdmin
我想让代码字段在 django 管理中自动填充和自动递增。 models.py
class GeneralDocumentType(models.Model):
code = models.CharField(max_length=10, null=False, unique=True)
name = models.CharField(max_length=100, null=False, unique=True)
description = models.TextField(blank=True, null=True)
def __str__(self):
return self.name
我想显示我的代码字段 default=DOC001,它会在添加数据之前显示递增 1 user.How 我可以实现吗?..
Django ModelAdmin
支持 get_changeform_initial_data。在您的管理员中,您可以覆盖此方法以根据最新的 ID 信息获取值。例如:
class YourModelAdmin(admin.ModelAdmin):
...
def get_changeform_initial_data(self, request):
# getting the latest id
try:
latest_document_type = GeneralDocumentType.object.latest('id')
latest_id = latest_document_type.id + 1
except GeneralDocumentType.DoesNotExist:
# incase there no object yet
latest_id = 0
return {'code': f'DOC{latest_id}'}
注意:这仅适用于 adding
新对象 ModelAdmin
。不适用于 InlineModelAdmin