Django rest framework создает новую запись с сериализатором, когда внешний ключ не существует - PullRequest
1 голос
/ 29 апреля 2020

Скажите, что у меня есть эти две модели:

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, но я не могу поверить, что это правильный подход.

...