Cześć wszystkich.
Może ktoś ma pomysł jak przyśpieszyć ładowanie django admina w szczegółach. Chodzi o to że mam model z dużą ilością powiązań, często ładowanie wywala timeout w apachu. Z góry dziękuje.
@hacker09: Ile masz rekordów w DB dla tego modelu? O jakiej liczbie powiązań mówimy?
Pokaż modele i adminmodel
Pewnie choicefieldy masz zbyt rozpięte.
W tym modelu mam z 700tyś rekordów, 7 powiązań foreign key i 1 onetoone, może znacie jakiegoś hacka aby to przyśpieszyć ;p może zostać nawet wyświetlona nazwa bez edycji
Indeksy?
Zobacz to raw_id_fields
8 relacji w jednym modelu to sporo niestety. Indeksy można spróbować ale tutaj mało co pomogą raczej z doświadczenia powiem ;). Niestety bedziesz musiał sobie pobrudzić ręce i ja bym to widział na dwa sposoby.
1). Stworzenie custom admina dla tego modelu, i wywalenie z niego całkowcie relacji by ich nie odpytywał i nie uwzględniał (ale ze wzgledu na to jak duzy to moze byc dataset i tak nie ma gwarancji ze to bedzie działać na dłużej).
2). Nadpisanie paginatora by robił "mądrzejszą" paginację niż domyślna w django adminie. Ten tekst może Cię zainspiruje: https://medium.com/@hakibenita/optimizing-django-admin-paginator-53c4eb6bfca3
raw_id_fields dodałem na szybko w te pola które mają powiązania, może jest trochę mniej i się otwiera ale w niktórych przypadkach dalej wywala timeout.
znalazłem chwilowe rozwiązanie jakim jest zrobienie forma bez powiązanych pól, ładujesz się wszystko, jeśi ktoś ma jakieś pomysły dawajcie znać, sprawdzę wszystkie ;p
Raw_id_fields powinien działać
Można jeszcze zobaczyć django-toolbarem co tam się dzieje.