我想讓代碼欄位在 django admin 中自動填充和自動遞增。模型.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。我怎樣才能實作這一點?..
uj5u.com熱心網友回復:
DjangoModelAdmin支持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
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/420717.html
標籤:
