Джанго выдает мне эту ошибку, и я не понимаю, почему..
TypeError at /api/v1/article
__init__() takes 1 positional argument but 2 were given
Request Method: GET
Request URL: http://127.0.0.1:8000/api/v1/article
Django Version: 2.2.2
Exception Type: TypeError
Exception Value:
__init__() takes 1 positional argument but 2 were given
Это мой класс сериализатора:
class ArticleSerializer(serializers.ModelSerializer):
class Meta:
model = Article
fields = ['id', 'title', 'body', 'category']
это мои модели:
from django.db import models
from django.contrib.auth.models import User
class Author(models.Model):
name = models.ForeignKey(User, on_delete=models.CASCADE)
detail = models.TextField()
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)
И это мой взгляд
class ArticleListCreateGet(ListAPIView, CreateAPIView):
queryset = Article.objects.all()
serializer_class = ArticleSerializer
и это мой адрес
path('api/v1/article', views.ArticleListCreateGet, name='article'),
Я не понимаю, что не так с моим кодом, может ли кто-нибудь сказать мне, почему я вижу ошибку выше?
Ваш путь относится к views.ArticleListCreateGet
, который представляет собой представление на основе класса, а не функцию.
Попробуйте views.ArticleListCreateGet.as_view()
на своем пути и посмотрите, что получится.
Разве вы не должны использовать
views.ArticleListCreateGet.as_view()
?