Как отправить данные публикации из формы реакции в конечную точку API Django Rest Framework? - PullRequest
0 голосов
/ 13 октября 2018

В настоящее время я работаю над полностью отделенным веб-приложением для ведения блогов, в котором сервер Django Rest Framework отправляет данные JSON через конечные точки API REST.

Моя презентация полностью обрабатывается интерфейсным клиентом Javascript реагирования.

В настоящее время я использую общие представления DRF - generics.ListCreateAPIView & generics.RetrieveUpdateDestroyAPIView.

У меня нет проблем с получением списка экземпляров модели базы данных (экземпляров блога). Проблема, с которой я сталкиваюсь, заключается в том, как отправлять данные POST через html-форму для создания нового экземпляра модели на бэкэнд-сервере API. IЯ вообще не использую формы 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()),
]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...