заполнение двух таблиц одним почтовым запросом - PullRequest
0 голосов
/ 24 мая 2019

У меня есть модель, которая хранит текст. У меня есть другая связанная модель, которая должна хранить объекты в первой модели. Например, предположим, что я публикую текст типа «Франция в Европе», который будет использоваться в модели News , а затем после публикации этой строки модель Entity должна хранить две строки. Френс и Европа . Как я могу добиться этого после публикации строки? Вот мои модели и сериализуются:

class News(models.Model):
    description = models.TextField(verbose_name="Description", max_length=50, blank=True, null=True, default="")
    timestamp = models.DateTimeField(auto_now_add=True)



class Entity(models.Model):
    news = models.ForeignKey(
        News,
        related_name='entities4thisnews',
        on_delete=models.CASCADE)
        entity = models.TextField(verbose_name="Entity", max_length=100, blank=True, null=True, default="")
        timestamp = models.DateTimeField(auto_now_add=True)


class EntitySerializer(serializers.HyperlinkedModelSerializer):
    news = serializers.SlugRelatedField(queryset=News.objects.all(),
                                        slug_field='pk', )
    class Meta:
        model = Entity
        fields = ('url',
                  "id",
                  'news',
                  'entity',
                  'timestamp',
                  )


class NewsSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = News
        entities4thisnews = EntitySerializer(many=True, required=False)
        fields = (
            "url",
            "id",
            "description",
            'timestamp',
            'entities4thisnews',
        )

Полагаю, мне нужно добавить код в execute_create () , но я не совсем уверен, как.

вот мои взгляды.py:

class NewsList(generics.ListCreateAPIView):
    queryset = News.objects.all()
    serializer_class = NewsSerializer
    name = 'news-list'
    def perform_create(self, serializer):
        pass

class EntityList(generics.ListCreateAPIView):
    queryset = Entity.objects.all()
    serializer_class = EntitySerializer
    name = 'entity-list'

Возможно ли это вообще? если нет, то какой метод предлагается? Спасибо,

...