`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` 参数未指定,并且可以'\的主要内容,如果未能解决你的问题,请参考以下文章

basename命令

basename命令

linux命令basename:去掉路径和扩展名,得到指定文件的文件名(去除文件扩展名.xxx)

未指定子数组的数量时如何在C中创建数组数组? [复制]

basename

未指定 base_name 参数,并且无法从视图集中自动确定名称,因为它没有 .queryset 属性