Получение идентификатора из отправленной формы в 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')