Сделать Django 3 REST render HTML шаблон - PullRequest
0 голосов
/ 30 апреля 2020

Я пытаюсь создать вызов API REST Django (версия 3.05), который будет отображаться в выбранном шаблоне HTML.

Однако я получаю ряд ошибок, решение которых я не нашел в StackOverflow (и да, я смотрел далеко и широко).

Поскольку моих ошибок много и они меняются в зависимости от того, что я пытаюсь сделать, позвольте мне сначала спросить, как это сделать правильно.

В моем представлении, настроенном (ниже), что мне нужно добавить (или изменить), чтобы преобразовать набор запросов в шаблон HTML?

models.py:

from django.db import models
class Hero(models.Model):
    name = models.CharField(max_length=60)
    alias = models.CharField(max_length=60)
    def __str__(self):
        return self.name

serializers.py:

from rest_framework import serializers
from .models import Hero
class HeroSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = Hero
        fields = ('name', 'alias')

views.py:

from rest_framework import viewsets
from .serializers import HeroSerializer
from .models import Hero
class HeroViewSet(viewsets.ModelViewSet):
    queryset = Hero.objects.all().order_by('name')
    serializer_class = HeroSerializer
    # over here - how do I render the queryset /to/my/template.html 

myapi / urls.py :

from django.urls import include, path
from rest_framework import routers
from . import views
router = routers.DefaultRouter()
router.register(r'heroes', views.HeroViewSet)

1 Ответ

0 голосов
/ 30 апреля 2020

Вы должны изменить свой вид с ModelViewSet на APIView. в представлении API вы можете включить renderer_classes и template_name.

проверьте здесь для получения дополнительной информации

...