【发布时间】:2018-03-07 15:12:47
【问题描述】:
我为移动开发人员创建了一个 API 端点,其中包含所有逻辑。现在我需要创建这个应用程序的网络版本。是否可以不专门为此编写视图,而是使用 API 中已经存在的视图? 在 API 中,我使用 Django Rest Framework ViewSets。 假设这是我的models.py
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=20)
description = models.CharField(max_length=100, blank=True, null=True)
那么这将是我的 serializers.py:
from rest_framework import serializers
from .models import Post
class PostSerializer(serializers.ModelSerializer):
class Meta:
model = Post
fields = ('id', 'title', 'description')
read_only_fields = ('id',)
viewsets.py:
from rest_framework import viewsets
from .serializers import PostSerializer
from .models import Post
class PostViewSet(viewsets.ModelViewSet):
model = Post
queryset = Post.objects.all()
serializer_class = PostSerializer
urls.py
from rest_framework.routers import DefaultRouter
router = DefaultRouter()
router.register(r'posts', viewsets.Post, base_name='post')
urlpatterns = router.urls
我在文档中看到过这个HTML & Forms,但是如果我将 renderer_classes 和 template_name 放入它只会使用我想要的参数呈现 html,但我希望有一个单独的端点来为移动开发人员返回 json 并呈现网页版的用户友好的 html。是否可以这样做,如果可以,我该如何处理?
【问题讨论】:
标签: python django api django-rest-framework