Standardmäßig zeigt die Django Admin-Site alle Datensätze eines verwandten Modells/einer Tabelle zur Ansicht an. Wie kann ich nur die Datensätze anzeigen, die bestimmte Kriterien erfüllen?Wie kann man den Suchsatz/die Datensätze einschränken, die in der Django Admin-Site angezeigt werden sollen?
Antwort
In Ihrer Admin-Definition können Sie eine queryset()
-Methode definieren, die das Abfrage-Set für den Administrator dieses Modells zurückgibt. zB:
class MyModelAdmin(admin.ModelAdmin):
def queryset(self, request):
qs = super(MyModelAdmin, self).queryset(request)
return qs.filter(user=request.user)
Dann werden nur Objekte mit user=request.user
wird im Admin sichtbar sein.
+1 Ich bin so glücklich, das zu sehen und es war so einfach! Vielen Dank! – Viet
Aber auf diese Weise ist es nicht möglich, zusätzliche Abfragen für andere Benutzer zu erhalten, wenn Sie danach suchen möchten. So beantwortet es die Frage nicht so wie ich es gelesen habe. –
Seit Django 1.6 'queryset' wurde ersetzt durch' get_queryset' – peter2108
Ich weiß, dass dies eine "akzeptierte Antwort" hat, aber ich wollte das hier rausschmeißen, seit ich auf diese Antwort stieß, während ich etwas anderes verfolgte und erkannte, dass ich eine alternative Lösung hatte, die ich oft benutze und gebrauche Granular-Level-Kontrolle als die akzeptierte Antwort.
class TestAdmin(admin.ModelAdmin):
def formfield_for_foreignkey(self, db_field, request, **kwargs):
if db_field.name == "FIELD":
kwargs["queryset"] = TestModel.objects.filter(test=False)
return super(TestAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs)
def formfield_for_manytomany(self, db_field, request, **kwargs):
if db_field.name == "FIELDS":
kwargs["queryset"] = TestModel.objects.filter(test=False)
return super(TestAdmin, self).formfield_for_manytomany(db_field, request, **kwargs)
Sehen Sie, was dort passiert ist! Seine Antwort war gut ... deine war besser. Sterling Arbeit. –
- 1. Parameter für die Anzahl der Datensätze festlegen, die in Crystal Reports XI angezeigt werden sollen
- 2. Django adminsite anpassen search_fields query
- 3. Dxf: Wie kann ich wissen, welche Layer angezeigt werden sollen?
- 4. Wie kann man den HTTP-Anfragetyp in sails.js einschränken?
- 5. Kann ich den Typ der Klassen einschränken, die von einer polymorphen Beziehung in Rails abgerufen werden?
- 6. Django AdminSite - Schwierige oder einfache Implementierung?
- 7. Zwei ähnliche Datensätze, die auf demselben Pivot-Diagramm angezeigt werden sollen
- 8. Sollen Datensätze in einer Webanwendung auf Unternehmensebene verwendet werden?
- 9. Wie sollen mehrere Django-Apps miteinander kommunizieren?
- 10. Wie kann man SignalR Server Verbindungen einschränken?
- 11. Sollen die Reduzierungen verschachtelt werden?
- 12. Wie wird die Gesamtzahl der Datensätze für Modelle in django admin angezeigt?
- 13. Wie kann die Anzahl der Datensätze pro Stunde gezählt werden?
- 14. Wie kann man private Inhalte einschränken?
- 15. wx.TextCtrl Wie kann man die Funktion "Going Down" einschränken?
- 16. Wie kann man einen Benutzer in asp.net einschränken?
- 17. Wie sollen die hundertsten Geburtsdatenfelder gehandhabt werden?
- 18. Wie kann man mit Tinkerpop 3 den kürzesten Weg zwischen Vertices finden, aber die Suchtiefe einschränken?
- 19. aktive Datensätze erhalten, die als plist angezeigt werden
- 20. Sollen Maßeinheiten lokalisiert werden?
- 21. Kann die Bildschirmsitzung angezeigt werden?
- 22. Sollen die Kontextattribute in der Webanwendung threadsicher gemacht werden?
- 23. Wie erhalten Sie mehrere Datensätze, die in einer Zeile in MySQL angezeigt werden?
- 24. Miniaturansicht in django admin kann nicht angezeigt werden
- 25. Wie kann die Bearbeitungsauswahl in der Tabellenansicht implementiert werden, wie in der iOS-Messaging-App angezeigt?
- 26. Wie sollen NSTableCellViews angelegt werden?
- 27. wie die Zeilennummern der Fehler angezeigt werden
- 28. Wie Sie den Verzeichniszugriff einschränken
- 29. Wie man Zahlen in einem Textfeld mit jquery einschränken kann
- 30. Wie wählt man selektiv die Items aus, die in Bibliographie in Latex ausgegeben werden sollen?
Meinst du das standardmäßig, oder möchtest du nur, dass diese Option auf der Änderungsliste verfügbar ist? –
Standardmäßig. Wenn ich die Seite lade, werden nur Datensätze angezeigt, die einige Anforderungen enthalten. Diese Anforderungen können im Backend geändert werden. – Viet
Und auch, wie Sie diese auf der Änderungsliste erscheinen lassen? – Viet