Есть несколько подходов, которые вы должны использовать для достижения этой цели:
1. Если префикс является общим для всех записей, вы можете создать поле в своей модели и добавить префикс при получении значения.
class testmodel(models.Model):
product_code = models.IntegerField(db_index=True)
product_short_code = models.CharField(max_length=500, default=0, null=True)
@property
def product_id(self):
return f"YNT{self.product_code}"
2. Если префикс не является общим для всех записей, вы можете создать поле в вашей модели для хранения префикса и добавить префикс при получении значение.
class testmodel(models.Model):
product_code = models.IntegerField(db_index=True)
product_prefix = models.CharField(max_length=20, default='YNT')
product_short_code = models.CharField(max_length=500, default=0, null=True)
@property
def product_id(self):
return f"{self.product_prefix}{self.product_code}"
3. Если вы хотите создать CharField
как primary_key
, тогда вы
def create_id():
// code for creating unique ids. assuming the id will be stored in _id variable.
return f"YNT{_id}"
class testmodel(models.Model):
product_id = models.CharField(primary_key=True, max_length=20, default=create_id)
product_short_code = models.CharField(max_length=500, default=0, null=True)
При третьем подходе вы должны убедитесь, что первичный ключ всегда уникален.