django: настраиваемый первичный ключ на основе значений других полей

#python #django

#питон #джанго

Вопрос:

У меня есть следующая модель:

 UNIT = (("pounds","pounds"),("pcs","pcs"),("kg","kg"),("g","g")) CATEGORIES = (("finished good","finished good"),("raw material","raw material")) PREFIX = (("RM","RM"),("FG","FG"))  def define_product_number():  last_number=Product_Hierarchy.objects.all().order_by('product_number').last()  if not last_number:  return '0000'  number = last_number.product_number  number_int = number[5:10]  new_number = int(number)   1    return new_number  class Product_Hierarchy(models.Model):  product_prefix = models.CharField(max_length=100,choices=PREFIX, default="FG")  product_number = models.IntegerField(max_length=12, unique=True, default= define_product_number, editable=False)      product_code = models.CharField(max_length=100, primary_key=True)  parent_product_code = models.ForeignKey("self",on_delete=models.CASCADE)  product_name = models.CharField(max_length=100)   product_category = models.CharField(max_length=100,choices=CATEGORIES, default="finished good")  stock_on_hand = models.FloatField(max_length=1000000)  unit = models.CharField(max_length=100, choices = UNIT, default="pcs")    def save_pk(self):  product_code = self.product_prefix   self.product_number  return super(Product_Hierarchy, self).save()  

и я пытаюсь настроить код продукта для сборки в соответствии с категорией, к которой относится продукт. Кажется невозможным автоматически создать его после выбора категории продукта.

Я еще не нашел способа сделать это, документация не охватывает это, и мои навыки даже близко не позволяют мне создать его с нуля. Мог бы кто-нибудь подсказать, как это сделать или где искать?