使用django-restframework-generics时如何修复TypeError

时间:2019-07-09 02:11:08

标签: django django-rest-framework django-generic-views

我正在学习如何使用基于类的通用视图,但是我一直遇到类型错误

from invoice.models import Invoice
from invoice.serializers import InvoiceSerializer
from rest_framework import generics


class InvoiceList(generics.ListCreateAPIView):
    queryset = Invoice.objects.all()
    serializer_class = InvoiceSerializer


class InvoiceDetail(generics.RetrieveUpdateDestroyAPIView):
    queryset = Invoice.objects.all()
    serializer_class = InvoiceSerializer

serialzers.py
from rest_framework import serializers

from .models import Invoice


class InvoiceSerializer(serializers.ModelSerializer):
    class Meta:
        model = Invoice
        fields = "__all__"

urls.py
from django.urls import path
from invoice import views
from rest_framework.urlpatterns import format_suffix_patterns

urlpatterns = [
    path('invoice/', views.InvoiceList),
    path('invoice/<int:pk>/', views.InvoiceDetail),
]

urlpatterns = format_suffix_patterns(urlpatterns)

我收到一条类型错误,消息为“ init ()接受1个位置参数,但给出了2个位置参数”

1 个答案:

答案 0 :(得分:0)

您在urls.py中的导入看起来不正确。 在urls.py中,尝试执行以下操作:

from django.urls import path
from .views import InvoiceList

path('invoice/', InvoiceList.as_view(), name="invoice"), # name can be anything you want.   

我从没使用过format_suffix_patterns,因此您可以尝试从该行开始查看它是否有效。