Alan Hou的个人博客

Django 3常见问题

1、’staticfiles’ is not a registered tag library

Django 在2.1中即淘汰了{% load staticfiles %} 和 {% load admin_static %},并在3.0版本中直接进行了删除,因此需进行如下操作

2、xxx doesn’t declare an explicit app_label and isn’t in an application in INSTALLED_APPS

一种可能是直接没有放入配置文件中的INSTALLED_APPS中,直接添加即可;

另外很多人可能也会把所有应用放到 apps 目录中,并在配置文件中添加如下配置:

此时在导入对应的模型时就不需在前面再添加 apps 了,使用 PyCharm 的朋友建议对 apps 目录执行右击>Mark Directory as > Source Root

3、xxx: (fields.E305) Reverse query name for ‘xxx’ clashes with reverse query name for ‘xxx’

这通常发生在继承了抽象模型的情况下,即对Model 进行了如下定义:

而如果在抽象模型中使用的硬编码的 related_name就会出现这一问题,解决方法是可以添加%(app_label)s、%(class)s,如:

4、django.db.utils.OperationalError: (1193, “Unknown system variable ‘storage_engine'”)

线下 MySQL数据库版本5.6切到线上5.7时,应修改MySQL 配置部分的‘init_command’: “SET storage_engine=INNODB;”,

5、如何允许字段可输入 Emoji?

MySQL数据库对应字段应修改为 utf8mb4,同时在配置文件中也需要对 charset 进行相应的修改

6、OSError: [E050] Can’t find model ‘en’. It doesn’t seem to be a shortcut link, a Python package or a valid path to a data directory.

7、ModuleNotFoundError: No module named ‘pip’

 

退出移动版