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)