Имам проблеми с разбирането как се обработват статичните файлове в Django. Прочетох официалната документация на Django, както и множество теми, включително тази прекрасна тук:
Разлики между STATICFILES_DIR, STATIC_ROOT и MEDIA_ROOT
Повечето хора дефинират списъка STATICFILES_DIRS като списък от пътища, където django ще търси допълнителни статични файлове освен статичната папка на приложението.
Разбирам това, но какво общо има това с полетата на формуляра, които замествам в моя admin.py? Замених формуляра ManyToMany по подразбиране към приспособлението FilteredSelectMultiple в няколко от моите администраторски модели по следния начин:
from django.contrib.admin.widgets import FilteredSelectMultiple
formfield_overrides = {
models.ManyToManyField: {'widget': FilteredSelectMultiple("User Names", is_stacked=False)}
}
Това работи добре и създава замяната на джаджа, която исках: Екранна снимка на функционална джаджа
Въпреки това, когато дефинирам STATICFILES_DIRS в settings.py, за да включа моята основна статична папка така:
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static/'),
)
Той нарушава моето заместване и се връща по подразбиране към оригиналния формуляр на поле ManyToMany: Екранна снимка на повредена джаджа
Ние нямаме дефиниран STATIC_ROOT в нашите настройки.py, тъй като не планираме да използваме функцията за събиране на статични данни. Планираме да запазим/позоваваме нашите статични файлове в главната статична папка. Също така в нашия settings.py имаме:
STATIC_URL = '/static/'
Не разбирам как тези настройки за работа със статични файлове пречат на formfield_override по-горе. Ще бъда благодарен за малко прозрение по този въпрос, за да мога да намеря начин да подходя към този проблем.
Благодаря ти!