首页 > 解决方案 > 配置不当的 Django API 视图

问题描述

我在 django 中遇到了一个奇怪的问题。它给我一个信息ImproperlyConfigured

下面是我的Views.py

class ArticleListCreateGet(ListAPIView, CreateAPIView):
    queryset = Article.objects.all()
    serializer_class = ArticleSerializers

下面是我的serializers.py

class ArticleSerializers(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = Article
        fields = ['author', 'title', 'body', 'category']

下面是我的models.py

from django.db import models
from django.contrib.auth.models import User

class Author(models.Model):
    name = models.TextField(max_length=50)

class Category(models.Model):
    name = models.CharField(max_length=100)

class Article(models.Model):
    author = models.ForeignKey(Author, on_delete=models.CASCADE)
    title = models.CharField(max_length=200)
    body = models.TextField()
    category = models.ForeignKey(Category, on_delete=models.CASCADE)

这是我的urls.py

url('^api/v1/article$', views.ArticleListCreateGet.as_view(), name='articleGetAndPost')

我想我的一切都很好,但是当我点击这个网址时

http://127.0.0.1:8000/api/v1/article

它向我抛出此错误消息

ImproperlyConfigured at /api/v1/article

Could not resolve URL for hyperlinked relationship using view name "author-detail". You may have failed to include the related model in your API, or incorrectly configured the `lookup_field` attribute on this field.

Request Method:     GET
Request URL:    http://127.0.0.1:8000/api/v1/article
Django Version:     2.2.and bla bla bla bla bla bla bla

怎样才能摆脱这个问题?

标签: djangodjango-rest-framework

解决方案


推荐阅读