Hier ist ein Modell:
class Person(models.Model):
name= models.CharField(max_length=100, blank=True)
identity_number= models.IntegerField(unique=True)
name
Feld sollte öffentlich, identity_number
jedoch vertraulich sein.
Ich möchte name
in der Admin-Listenansicht und beide Felder in der Änderungsformularansicht anzeigen.
Ich möchte eine Benutzergruppe erstellen, die nur auf die Listenansicht zugreifen kann und eine andere Benutzergruppe, die auf beide Ansichten zugreifen kann.
Dies bedeutet, dass die erste Benutzergruppe keine Links zum Änderungsformular sehen sollte und wenn sie versuchen, direkt auf die Änderungsformularseite zuzugreifen 403
(oder so ähnlich), zurückgegeben werden sollte. Wie erreicht man das?
Wenn list view
Sie das meinen changelist_view
, können Sie Folgendes tun:
class MyModelAdmin(admin.ModelAdmin):
list_display = ('name', 'identity_number', )
def changelist_view(self, request, extra_context=None):
if request.user.groups.filter(name='your_group_name').exists():
self.list_display = ('name', )
# if you dont want any links to the change_form
self.list_display_links = None
return super(MyModelAdmin, self).changelist_view(request, extra_context)
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen