Скажите, что у меня есть эти две модели:
class App(models.Model):
label = models.CharField(max_length=32)
class Endpoint(models.Model):
main_app = models.ForeignKeyField(App, on_delete=models.CASCADE)
...
class EndpointSerializer(serializers.HyperlinkedModelSerializer):
main_app = serializers.SlugRelatedField(queryset=App.objects.all(), slug_field='label')
class Meta:
model = ReviewComponent
fields = [
'id',
'main_app'
]
Когда я хочу создать новую конечную точку с существующим приложением, это довольно тривиально:
serializer = EndpointSerializer(data={'main_app': 'foo'...})
serializer.is_valid()
serializer.save()
, но когда я хочу чтобы создать новую конечную точку с приложением, которое не существует, этот подход не работает, какой правильный способ сделать это?
Я всегда мог бы добавить сериализатор для приложения, создать приложение через AppSerializer а затем возобновить создание на EndpointSerializer, но я не могу поверить, что это правильный подход.