我有自定义 css
和 js
文件、admin.py
和覆盖的 base.html 位于 templates/admin/app1/
中,如下所示:
django-project |-core | |-settings.py | └-static | └-core | └-admin | └-app1 | |-css | | └-custom.css # Here | └-js | └-custom.js # Here |-app1 | |-models.py | └-admin.py # Here |-app2 └-templates └-admin └-app1 └-base.html # Here
首先,我将自定义 css
和 js
文件分别设置为 c 中所有管理员
Person
、Animal
和 Food
的 Media 类中的 css
和 endcphpcn phpcnapp1
如下所示,然后我可以将它们应用到所有管理员 Person
、Animal
和 Food
app1
:
# "app1/admin.py" from django.contrib import admin from .models import Person, Animal, Food @admin.register(Person) class PersonAdmin(admin.ModelAdmin): class Media: css = { 'all': ('core/admin/app1/css/custom.css',) # Here } js = ('core/admin/app1/js/custom.js',) # Here @admin.register(Animal) class AnimalAdmin(admin.ModelAdmin): class Media: css = { 'all': ('core/admin/app1/css/custom.css',) # Here } js = ('core/admin/app1/js/custom.js',) # Here @admin.register(Food) class FoodAdmin(admin.ModelAdmin): class Media: css = { 'all': ('core/admin/app1/css/custom.css',) # Here } js = ('core/admin/app1/js/custom.js',) # Here
但是,上面的解决方案效率不高,所以我在 <link ..."admin/css/base.css" %}{% endblock %}">
in base.html
之后设置它们,如下所示,但解决方案如下不起作用:
# "templates/admin/app1/base.html" # ... <title>{% block title %}{% endblock %}</title> <link rel="stylesheet" href="{% block stylesheet %}{% static "admin/css/base.css" %}{% endblock %}"> <link rel="stylesheet" href="{% static "core/admin/app1/css/custom.css" %}"> {# Here #} <script src="{% static 'core/admin/app1/js/custom.js' %}" defer></script> {# Here #} {% block dark-mode-vars %} <link rel="stylesheet" href="{% static "admin/css/dark_mode.css" %}"> # ...
因此,我将 base.html
放入 templates/admin/
中,如下所示,然后上述解决方案有效,但自定义 css
和 js
文件将应用于所有应用程序中的所有管理员:
django-project |-core | |-settings.py | └-static | └-core | └-admin | └-app1 | |-css | | └-custom.css | └-js | └-custom.js |-app1 | |-models.py | └-admin.py |-app2 └-templates └-admin └-base.html # Here
那么,如何将自定义 css
和 js
文件仅有效地应用于 app1
中的所有管理员 Person
、Animal
和 Food
吗?
P粉5459565972024-04-04 12:10:56
我无法使用评论。
STATICFILES_DIRS = [ # add # os.path.join(BASE_DIR, 'core', 'static' ....) ] ....
from django.conf import settings from django.conf.urls.static import static urlpatterns = [ # ... the rest of your URLconf goes here ... ] # add + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
# add STATIC_URL = "static/"
python manage.py collectstatic
https://docs.djangoproject。 com/ja/4.2/howto/static-files/#configuring-static-files