Piszę niestandardowe hasło administratora i muszę uzyskać wszystkie zarejestrowane modele w Admin. czy to możliwe? Potrzebuję go do utworzenia niestandardowych widoków na stronie indeksu administratora.Administrator Django - jak zdobyć wszystkie zarejestrowane modele w templatetag?
9
A
Odpowiedz
14
można uzyskać dostęp admin.site._registry
dict z model-> ModelAdmin:
>>> ./manage.py shell
In [1]: from urls import * # load admin
In [2]: from django.contrib import admin
In [3]: admin.site._registry
Out[3]:
{django.contrib.auth.models.Group: <django.contrib.auth.admin.GroupAdmin at 0x22629d0>,
django.contrib.auth.models.User: <django.contrib.auth.admin.UserAdmin at 0x2262a10>,
django.contrib.sites.models.Site: <django.contrib.sites.admin.SiteAdmin at 0x2262c90>,
testapp.models.Up: <django.contrib.admin.options.ModelAdmin at 0x2269c10>,
nashvegas.models.Migration: <nashvegas.admin.MigrationAdmin at 0x2262ad0>}
To właśnie widok indeksu administracja robi:
@never_cache
def index(self, request, extra_context=None):
"""
Displays the main admin index page, which lists all of the installed
apps that have been registered in this site.
"""
app_dict = {}
user = request.user
for model, model_admin in self._registry.items():
# ...
Zauważ, że zmienne rozpoczynające się od znaku podkreślenia są potencjalnie ulec zmianie w przyszłych wersjach django.
Powiązane problemy
- 1. Administrator Django w linii
- 2. Zaktualizuj wszystkie modele naraz w Django
- 3. Administrator Django GenericForeignKey wbudowany
- 4. Django-mutant tworząc modele w django-admin
- 5. Jak zdobyć wszystkie kobiety?
- 6. Administrator Django - niestandardowy widok listy zmian
- 7. Modele Django - Pole ilościowe
- 8. Django 1.7 sprzeczne modele
- 9. Administrator Django, sekcja bez "modelu"?
- 10. Django kwerendy na modele?
- 11. odpytywanie modele w Django (dwa poziomy głębokości)
- 12. Django modele i Python atrybuty
- 13. jak mieć dwa modele odwołać wzajemnie Django
- 14. Modele django wybierające pojedyncze pole
- 15. Jak uzyskać wszystkie zarejestrowane typy usług w Autofac
- 16. Test Autofac wszystkie zarejestrowane typy można rozwiązać
- 17. Administrator Django spersonalizuj zapytanie search_fields
- 18. Administrator Django: Jak wyczyścić panel Ostatnie działania
- 19. Jak zdobyć wszystkie CSS elementu
- 20. jak zdobyć wszystkie elementy ArrayAdapter?
- 21. modele Django i właściwości Python
- 22. Administrator Django - jak zrobić "inlines" składane?
- 23. django: wykluczyć modele z migracji
- 24. Administrator Django wbudowany w głęboką relację
- 25. Administrator Django: brakuje inlines dla niektórych rekordów
- 26. Django Administrator: Pokaż listę modeli
- 27. modele django rekurencyjne import - jak rozwiązać
- 28. (Django) jak zdobyć nazwę miesiąca?
- 29. Jak korzystać z inwazyjnych szablonów templatetag w google-app-engine
- 30. Strony administracyjne Django uniemożliwiają moje modele
Czy znasz jakieś metody, aby uzyskać rzeczywistą aplikację, w której użytkownik jest administratorem? Jeśli jest to dahsboard, to nie zwraca aplikacji, ale dla innych zwraca całą etykietę lub obiekt. Chcę używać go jako templatetag w moim globalnym menu administratora. – tunarob
Nie rozumiem, czy możesz otworzyć kolejne pytanie i podać więcej szczegółów? – jpic