赞
踩
basename
argument not specified, and couldbasename
argument not specified, and could not automatically determine the name from the viewset, as it does not have a .queryset
attribute.
参考URL: https://www.cnblogs.com/chijintao/p/14973807.html
问题说明:
django启动报错: basename
argument not specified, and could not automatically determine the name from the viewset, as it does not have a .queryset
attribute.
问题分析:
根据报错提醒,说是 basename
参数没有指定。
Django REST framework 中的路由注册是这样子的
router = routers.SimpleRouter()
router.register(‘/api/accounts/’, AccountViewSet, basename=‘accounts’)
basename 主要是用在反向解析
一般流程是 url 路由->视图
但有的时候需要在视图中通过视图获取url
比如重定向,这个时候就可以通过 basename 做软编码
如果 basename 参数缺省,那么会使用 viewset 参数的 queryset 的属性,如果即不指定 basename 参数,又不指定 viewset 参数的 queryset 的属性 ,那么就会报错!
问题说明:
django启动报错:ImportError: cannot import name ‘render_to_response’ from ‘django.shortcuts’
问题分析:
Django 3.0 已经将 render_to_response 移除了。因为有部分代码在用 render_to_response
解决方案:
使用 render 代替 render_to_response。
问题描述:django启动报错:IOError: No translation files found for default language zh-cn.
问题分析:
进入到 lib/python3.8/site-packages/django/conf/locale 下查看有无zh_cn?
$ ls
af be ca de_CH en_GB es_MX eu ga hr id it km lt mr nl pt sk sv th uk zh_Hant
ar bg cs dsb eo es_NI fa gd hsb ig ja kn lv ms nn pt_BR sl sw tk ur
ar_DZ bn cy el es es_PR fi gl hu __init__.py ka ko mk my os __pycache__ sq ta tr uz
ast br da en es_AR es_VE fr he hy io kab ky ml nb pa ro sr te tt vi
az bs de en_AU es_CO et fy hi ia is kk lb mn ne pl ru sr_Latn tg udm zh_Hans
原因是在版本更新后Django项目setting.py中的LANGUAGE_CODE设置变了需要更改。
新版本的django包版本中只有zh_Hans目录,没有zh_cn
解决方法:
所以更改setttings.py 下
LANGUAGE_CODE = ‘zh-Hans’ 即可
zh-Hans是简体中文 zh-Hant是繁体中文
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。