【发布时间】:2019-08-13 05:43:02
【问题描述】:
我一次又一次地收到以下错误。我正在尝试解决它 早上,但什么也没发生。
assert queryset is not None, '
basenameargument not specified, and '\ AssertionError:basename未指定参数,并且可以 不会自动从视图集中确定名称,因为它不会 有一个.queryset属性。
models.py
class Language(models.Model):
A = models.CharField(max_length=50)
B = models.ForeignKey(User,on_delete=models.CASCADE,null=True)
C = models.CharField(max_length=60)
D = models.TextField(max_length=256)
E = models.BooleanField(default=False)
序列化器.py
class LanguageSerializer(serializers.ModelSerializer):
class Meta:
model = Language
fields = ("__all__")
views.py
class LanguageView(viewsets.ModelViewSet):
queryset = Language.objects.all()
serializer_class = LanguageSerializer
urls.py
router = routers.DefaultRouter()
router.register('ln/languages', views.LanguageView)
models.py 中有更多的模型(表),其他的模型(表)都是
工作正常以获得结果,但语言模型(表)给出错误
assert queryset is not None, '
basenameargument not specified, and ' \ AssertionError:basename未指定参数,并且可以 不会自动从视图集中确定名称,因为它不会 有一个.queryset属性。
【问题讨论】:
-
您在此处发布的内容应该可以使用。要么你的真实代码有错字,要么另一个视图注册失败。
-
你可以试试这个:
router.register('ln/languages', views.LanguageView, basename='languages')。但是,这只是一个测试,我同意@Linovia,存在某种错字。您也可以尝试删除router.register('ln/languages', views.LanguageView)、/分隔符中的ln/总是很棘手。
标签: django django-models django-rest-framework django-serializer