DJango Составной первичный ключ со значениями полей экземпляра

hi у меня проблемы в django 3.2 с обходом для составных ключей. по просьбе моего клиента ему нужен составной ключ как первичный ключ не только по ограничению unique_together, поэтому мне интересно, есть ли способ или место для перехвата экземпляра перед валидацией и заполнения составного ключа значениями из других полей и сохранения его в бд ej:

class MyModel(models.Model):
   foo = models.UUIDField(default=uuid.uuid4,
                          auto_created=True, editable=False, max_length=36)
   bar = models-charfield()
   taz = models.charfield()
   composite_key = models.charfield(primary_key=True, default = 'foo' + 'taz' + 'foo')

среди этих строк я не могу получить пасс от валидатора полей формы на сайте django admin, поэтому я действительно не могу протестировать сигналы или метод save() Любая помощь будет высоко оценена.

Попробуйте это:

class MyModel(models.Model):
   foo = models.UUIDField(default=uuid.uuid4,
                          auto_created=True, editable=False, max_length=36)
   bar = models.charfield()
   taz = models.charfield()
   composite_key = models.charfield(primary_key=True)

   def save(self, *args, **kwargs):
      self.composite_key = self.foo
      if self.bar:
         self.composite_key += self.bar
      if self.taz:
         self.composite_key += self.taz
      super(Model, self).save(*args, **kwargs)
Вернуться на верх