Używam backendu CachedStaticFilesStorage w Django 1.7 i mam problem z plikami statycznymi w interfejsie administratora.Django CachedStaticFilesStorage w ModelAdmin Media
W klasie ModelAdmin
można zdefiniować klasę Media
za pomocą plików statycznych, które można dodać do widoków Dodaj/Zmień. Aby zastosować skrót do tych plików, używam funkcji static
w django.contrib.staticfiles.templatetags.staticfiles
. Np .:
from django.contrib.staticfiles.templatetags.staticfiles import static
class MyAdminClass(admin.ModelAdmin):
class Media:
js = [
static('app/static_file.js'),
static('app/static_file_2.js'),
]
ten pojawił się działać, ponieważ pliki statyczne zostały już zebrane zanim ta zmiana została dokonana. Ale kiedy usunąć pliki statyczne i próbować uruchomić collectstatic
nie powiedzie się z powodu błędu:
ValueError: The file 'app/static_file.js' could not be found with <django.contrib.staticfiles.storage.CachedStaticFilesStorage object at 0x80910a9d0>
W rzeczywistości, nie można uruchomić dowolną komendę django, jak to próbuje załadować aplikacji administratora i to zawiedzie, gdy dochodzi do próby uruchomienia polecenia static
w statycznym pliku, który nie został jeszcze zebrany.
Czy ktoś ma pomysły na obejście tego?
Wpadłem też na to. Wygląda na to, że zespół Django pracuje nad poprawką. https://github.com/django/django/pull/5571/files –
Tutaj jest bilet: https://code.djangoproject.com/ticket/21221 –