如何将发布数据从React Form发送到Django Rest Framework API端点?

时间:2018-10-12 21:58:51

标签: django reactjs django-rest-framework

我目前正在开发一个完全分离的博客Web应用程序,其中Django Rest Framework服务器通过REST API端点发送JSON数据。

我的演示文稿完全由前端react javascript客户端处理。

当前,我正在使用通用DRF视图-generics.ListCreateAPIView和generics.RetrieveUpdateDestroyAPIView。

我没有问题可以获取数据库模型实例的列表(博客文章实例。我遇到的麻烦是如何通过html表单发送POST数据以在后端API服务器中创建新的模型实例。我没有使用Django表单无论如何,都完全在前端处理表单。Django只是有一个REST API服务器。

# models.py
from django.db import models


# Create your models here.
class Post(models.Model):
title = models.CharField(max_length=50)
content = models.CharField(max_length=500)
timestamp = models.DateTimeField(auto_now=False, auto_now_add=True)
updated = models.DateTimeField(auto_now=True, auto_now_add=False)

class Meta:
    ordering = ["-timestamp", "-updated"]

def get_model_fields(self):
    return self._meta.get_fields()

def __str__(self):
    return self.title

from rest_framework import serializers
from blog.models import Post

# serializers.py
class PostSerializer(serializers.ModelSerializer):
    timestamp = serializers.DateTimeField(read_only=True, format="%Y- 
    %m-%d")
    updated = serializers.DateTimeField(read_only=True, format="%Y-%m- 
    %d")

    class Meta:
        fields = (
            'id',
            'title',
            'content',
            'timestamp',
            'updated',
        )
        model = Post

# views.py
from rest_framework import generics

from blog.models import Post
from blog.serializers import PostSerializer
# Create your views here.


class ListPost(generics.ListCreateAPIView):
    queryset = Post.objects.all()
    serializer_class = PostSerializer


class DetailPost(generics.RetrieveUpdateDestroyAPIView):
    queryset = Post.objects.all()
    serializer_class = PostSerializer


# urls.py
from django.conf.urls import url
from blog import views

urlpatterns = [
    url(r'^$', views.ListPost.as_view()),
    url(r'^(?P<pk>\d+)/$', views.DetailPost.as_view()),
]

0 个答案:

没有答案