Django: настраиваемый первичный ключ на основе шаблона формы
У меня следующая модель:
UNIT = (("pounds","pounds"),("pcs","pcs"),("kg","kg"),("g","g"))
CATEGORIES = (("finished good","finished good"),("raw material","raw material"))
class Product_Hierarchy(models.Model):
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")
и я пытаюсь установить, чтобы код продукта строился в соответствии с категорией, к которой принадлежит продукт. Не представляется возможным автоматически построить его после выбора категории товара.
Поскольку создание продукта происходит в двух шаблонах: шаблон регистрации готового товара и другой шаблон регистрации сырья. Мне интересно, могу ли я написать что-то, что определяет, откуда происходит обращение к модели, и автоматически генерирует код, соответствующий категории
Вот как выглядит моя форма:
CATEGORY_CHOICES = [
('finished good', 'finished good'),('raw material', 'raw material'),
]
UNIT = [("pounds","pounds"),("pcs","pcs"),("kg","kg"),("g","g")]
class UpdateProductForm(forms.ModelForm):
product_category = forms.CharField(widget=forms.Select(choices=CATEGORY_CHOICES), label='Category')
product_name = forms.CharField(label = 'Product Name')
stock_on_hand = forms.CharField(label = 'Stock On Hand')
unit = forms.CharField(widget=forms.Select(choices=UNIT), label='Unit')
class Meta:
model = Product_Hierarchy
fields = ("product_name", "product_category", "stock_on_hand", "unit")
Я пока не нашел способа сделать это, документация не охватывает это, а мои навыки даже близко не позволяют мне создать это с нуля. Может кто-нибудь подскажет, как это сделать или где искать?