我正在尝试一种方法,该方法在我的模型中将具有一个结构类似于“ ITEM1”的字段,其中数字部分将按顺序递增并且是唯一的,例如:“ ITEM2”,“ ITEM3”和以此类推。我不确定如何实现这一目标。请指出正确的方向。
预先感谢。
答案 0 :(得分:0)
对于默认的Django模型,请将AutoField用作id
。它是自动递增的。然后,您可以为模型编写属性以返回期望的结果:
class MyModel(models.Model):
@property
def item_name(self):
return f'ITEM{self.id}'
my_model_instance1 = Model.objects.create()
my_model_instalce1.id = 1
my_model_instance1.item_name = 'ITEM1'
my_model_instance2 = Model.objects.create()
my_model_instalce2.id = 2
my_model_instance2.item_name = 'ITEM2'
我认为将其存储在数据库中是多余的,但是如果您愿意,可以使用:
class MyModel(models.Model):
item = models.CharField(max_length=255)
def item_name(self):
return f'ITEM{self.id}'
def save(self, *args, **kwargs):
if not self.item:
self.item = self.item_name()
super(MyModel, self).save(*args, **kwargs)