`basename` 参数未指定,并且可以'\
Posted
技术标签:
【中文标题】`basename` 参数未指定,并且可以\'\\【英文标题】:`basename` argument not specified, and could ' \`basename` 参数未指定,并且可以'\ 【发布时间】:2019-08-13 05:43:02 【问题描述】:我一次又一次地收到以下错误。我正在尝试解决它 早上,但什么也没发生。
assert queryset is not None, '
basename
argument 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, '
basename
argument not specified, and ' \ AssertionError:basename
未指定参数,并且可以 不会自动从视图集中确定名称,因为它不会 有一个.queryset
属性。
【问题讨论】:
您在此处发布的内容应该可以使用。要么你的真实代码有错字,要么另一个视图注册失败。 你可以试试这个:router.register('ln/languages', views.LanguageView, basename='languages')
。但是,这只是一个测试,我同意@Linovia,存在某种错字。您也可以尝试删除router.register('ln/languages', views.LanguageView)
、/
分隔符中的ln/
总是很棘手。
【参考方案1】:
试一试
router.register('ln/languages', views.LanguageView, basename='ln-languages')
或
router.register('ln/languages', views.LanguageView, basename='languages')
更多细节可以查看文档django-rest-framework-routers
【讨论】:
以上是关于`basename` 参数未指定,并且可以'\的主要内容,如果未能解决你的问题,请参考以下文章