У меня есть две модели, использующие Djongo:
from djongo import models
class Sector(models.Model):
name = models.CharField(max_length=50)
def __str__(self):
return self.name
class Meta:
abstract = True
class Collaborator(models.Model):
name = models.CharField(max_length=100)
birth = models.DateField()
salary = models.IntegerField()
status = models.BooleanField()
register_date = models.DateTimeField(auto_now_add=True)
update_date = models.DateTimeField(auto_now=True)
sector = models.EmbeddedModelField(
model_container=Sector,
)
objects = models.DjongoManager()
def __str__(self):
return self.name
Я хочу выполнить это:
Collaborator.objects.create(
name='bla',
# all normal fields...
sector=None, # obviously I need something but None here, but what?
)
Но я получаю эту ошибку:
ValueError: Значение: Ни один не должен быть экземпляром Model: class 'django.db.models.base.Model'
Я не могу создать экземпляр Сектора, поскольку он абстрактный.
ЕслиЯ удаляю абстрактное свойство из сектора, оно прекрасно работает, а затем передает его функции create
, но идея состоит в том, чтобы сохранить ее таким образом, поскольку на сайте Djongo говорится:
Если вы не планируете использовать встроенную модель в качестве автономной модели (что означает, что она всегда будет встроена в родительскую модель), вы должны добавить класс Meta и abstract = True. Таким образом, Djongo никогда не зарегистрирует это. модель как фактическая модель.
Рекомендуется определять встроенные модели как абстрактные модели, и это настоятельно рекомендуется.
Как мне это исправить?