当前位置:   article > 正文

django常见启动报错总结_assert queryset is not none, '`basename` argument

assert queryset is not none, '`basename` argument not specified, and could

django常见启动报错

django启动报错:assert queryset is not None, 'basename argument not specified, and could

basename 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启动报错: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.

问题描述: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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

原因是在版本更新后Django项目setting.py中的LANGUAGE_CODE设置变了需要更改。
新版本的django包版本中只有zh_Hans目录,没有zh_cn

解决方法:
所以更改setttings.py 下
LANGUAGE_CODE = ‘zh-Hans’ 即可

zh-Hans是简体中文 zh-Hant是繁体中文

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/一键难忘520/article/detail/1006034
推荐阅读
相关标签
  

闽ICP备14008679号