Получение идентификатора из отправленной формы в Django

Я использую React и Django и создал форму для ввода данных пользователем. При отправке я хотел бы вернуть ID поста, чтобы страница могла автоматически загрузить следующий шаг, используя ID в URL.

В настоящее время пост добавляется в базу данных просто отлично, но у меня проблемы с тем, что происходит после этого.

views.py

class CreateArticle(generics.CreateAPIView):
    queryset = Article.objects.all()
    serializer_class = CreateArticleSerializer

    def article(self, request, format=None):
        serializer = self.serializer_class(data=request.data)
        if(serializer.is_valid()):
            title = serializer.data.get('title')

            p = Article(title=title)
            p.save()
            return Response(ArticleSerializer(p).data, status=status.HTTP_200_OK)
        return Response(status=status.HTTP_400_BAD_REQUEST)
serializer.py

class CreateArticleSerializer(serializers.ModelSerializer):
    class Meta:
        model = Article
        fields = ('title')
models.py

def generate_unique_id():
        return(uuid.uuid4())

class Article(models.Model):
    id = models.CharField(max_length=36, default=generate_unique_id(), primary_key=True)
    title = models.CharField(max_length=50)

    def __str__(self):
        return self.title
CreateArticle.jsx

try {
        API.post("/create/", { ...article }).then((response) => console.log(response))
} catch (err) {
        console.log(err)
    }

Я понимаю, что представления могут возвращать только HTTP-запросы, но я новичок в Django и потерялся здесь. Я пробовал создавать ID в представлении и возвращать его в качестве ответа, но он не появляется в обычных данных Axios. Любое направление будет оценено по достоинству.

Спасибо

Вы должны включить id/pk в свой класс сериализатора

...
class CreateArticleSerializer(serializers.ModelSerializer):
    class Meta:
        model = Article
        fields = ('id', 'pk', 'title')
Вернуться на верх