Присвоение дочернего поля родительскому при создании с помощью django-mptt
Вопрос в том, как я могу создать с помощью django-mptt, новое подразделение с именем родителя (которое уже есть в DB)?
как новый продукт>аккаунт, но с уже FK для родительского суб-аккаунта (по его имени, например)
Модели:
class Product(models.Model):
account = models.OneToOneField(
Account,
primary_key=True,
related_name='product',
on_delete=models.CASCADE,
)
class Account(models.Model):
subs = models.ForeignKey(
Subs, related_name='accounts', on_delete=models.CASCADE,
)
class Subs(models.Model, MPTTModel):
name = models.CharField(max_length=255)
parent = TreeForeignKey(
'self', on_delete=models.CASCADE, null=True, blank=True, related_name='subs')
Сериализаторы:
class ProductCreateSerializer(CreateModelSerializer):
subs = serializers.PrimaryKeyRelatedField(queryset=Subs.objects.all())
account = serializers.PrimaryKeyRelatedField(queryset=Account.objects.all())
class Meta:
model = Product
fields = "__all__"
def create(self, validated_data):
subs = validated_data.pop("subs")
account = Account.objects.create(
subs=subs, account=account, name=validated_data['name']
)
validated_data["account"] = account
return super().create(validated_data)