我有一个 Django 项目,其中包含一些文件,显然,Django 不会自动发现这些文件。我的解决方法是将它们导入 urls.py 以便 Django 可以看到它们。这是我的 urls.py 的样子:
from django.contrib import admin
from django.urls import path
from custom_file_1 import * # "unused" import
from custom_file_2 import * # "unused" import
urlpatterns = [
...
]
我的 IDE 认为注释导入未使用,因为它们未被使用,但它们对于 Django 可以处理这些文件至关重要。
还有一个问题:有什么好的方法可以让 Django 看到这些文件吗?以及如何做到这一点?
请您参考如下方法:
用通配符导入东西通常不是一个好主意。想象一下,在其中一个自定义文件中存在一些名为 path 的对象,然后它将覆盖对 path 函数的引用,您从 django.urls 导入。
通常在 AppConfig 中导入此类文件(例如包含信号等)。
在应用程序的目录中,有一个__init__.py文件。你可以写
# app/__init__.py
default_app_config = 'app.config.CustomAppConfig'
然后在您的应用程序目录中定义应用程序的配置:
# app/config.py
from django.apps import AppConfig
class CustomAppConfig(AppConfig):
name = 'app'
def ready(self):
import custom_file_1 # noqa
import custom_file_2 # noqa
在这里# noqa用于忽略 flake8 警告。
