在Django admin中为字段添加填充,可以通过自定义模型管理器和重写模型的save方法来实现。
首先,创建一个自定义的模型管理器,继承自django.db.models.Manager
。在管理器中,重写get_queryset
方法,通过super().get_queryset()
获取原始查询集,然后使用annotate
方法为字段添加填充值。
from django.db import models
class FilledQuerySet(models.QuerySet):
def get_queryset(self):
queryset = super().get_queryset()
return queryset.annotate(field_fill=models.Value('填充值'))
class FilledManager(models.Manager):
def get_queryset(self):
return FilledQuerySet(self.model, using=self._db)
class YourModel(models.Model):
field = models.CharField(max_length=100)
objects = FilledManager()
接下来,在模型中使用自定义的管理器objects
,这样在Django admin中就可以看到填充值了。
如果想要为不同的字段添加不同的填充值,可以在模型中定义多个字段,并在自定义管理器中为每个字段添加不同的填充值。
class FilledQuerySet(models.QuerySet):
def get_queryset(self):
queryset = super().get_queryset()
return queryset.annotate(
field1_fill=models.Value('填充值1'),
field2_fill=models.Value('填充值2')
)
class YourModel(models.Model):
field1 = models.CharField(max_length=100)
field2 = models.CharField(max_length=100)
objects = FilledManager()
这样,在Django admin中,field1
字段的填充值为'填充值1',field2
字段的填充值为'填充值2'。
推荐的腾讯云相关产品:腾讯云服务器(CVM)和腾讯云数据库(TencentDB)。腾讯云服务器提供了高性能、可扩展的云服务器实例,适用于各种应用场景。腾讯云数据库提供了多种数据库产品,如云数据库MySQL、云数据库Redis等,可满足不同的数据存储需求。
腾讯云服务器产品介绍链接:https://cloud.tencent.com/product/cvm 腾讯云数据库产品介绍链接:https://cloud.tencent.com/product/cdb
领取专属 10元无门槛券
手把手带您无忧上云