在python中生成固定的alpha +顺序数值

时间:2018-12-13 09:39:12

标签: python django django-models

我正在尝试一种方法,该方法在我的模型中将具有一个结构类似于“ ITEM1”的字段,其中数字部分将按顺序递增并且是唯一的,例如:“ ITEM2”,“ ITEM3”和以此类推。我不确定如何实现这一目标。请指出正确的方向。

预先感谢。

1 个答案:

答案 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)