Entfernen Sie die Schaltfläche „Hinzufügen“ -Funktionalität in Django Admin [Duplikat]

StackOverflow https://stackoverflow.com/questions/1217901

  •  10-07-2019
  •  | 
  •  

Frage

    

Diese Frage bereits eine Antwort hier:

         

Gibt es eine Möglichkeit, die „Hinzufügen“ Funktionalität auf der Django Admin-Seite zu entfernen? Für bestimmte Einrichtungen, mag ich nur die Django Admin, um sie anzuzeigen zu können oder bestehende zu ändern, aber nicht neue hinzufügen.

War es hilfreich?

Lösung

Natürlich können Sie Admin sehr granular anpassen, indem Sie den Anweisungen folgen hier - ich glaube, dass durch zwingenden ModelAdmin.save_model(self, request, obj, form, change) in Ihrer eigenen ModelAdmin Unterklasse teilweise, was Sie erhalten werden kann, nichts, um sicherzustellen, auf dem Speicher geschieht, wenn change falsch ist (dh ein Versuch eher hinzuzufügen, als Wechsel), und teil durch zwingende ModelAdmin.add_view(self, request, form_url='', extra_context=None) „Add view“ anzuzeigen, die es ganz klar an den Admin macht, dass sie Objekt über diese Route hinzufügen sind nicht erlaubt sein wird. Ich habe nicht wirklich die spezifische Admin Anpassung getan Sie benötigen, aber ich habe andere getan und sie scheinen ziemlich reibungslos zu arbeiten!

Andere Tipps

Sie haben die Erlaubnis, aus dem Admin-Interface für jede Benutzergruppe anpassen können. Versuchen würde /admin/auth/group und es sollte von dort einfach sein

Dies wird nicht als granular sein als die Lösung durch die frühere Antwort angeboten, aber es wird von den meisten Ihrer Bedürfnisse kümmern, ohne die Server-Betreiber anpassen zu müssen.

Wenn Sie die Berechtigungen ändern Zugriff zu beschränken, dann werden Sie noch auf das Pluszeichen durch ein FK / MtM Feld bekommen. Ein Klick, der ein Popup-Fenster mit ‚Zugriff verweigert‘ in ihm geöffnet wird.

Sie können tatsächlich vollständig auf das Pluszeichen entfernen, indem Sie nicht einfach das Modell nicht mit dem Admin-Registrierung.

Ich habe eine Situation, wo ich vordefinierte Kategorien, die ich mag Benutzer in der Lage sein, mehr zu wählen als ein. Der beste Weg, dies zu tun ist mit einem models.ManyToMany Feld. Sie können das Modell mit der Admin-Register, die Daten eingeben, wie erforderlich, und dann die Registrierung entfernen.

Eine einfache effektive Möglichkeit ist max_num=0 für diesen speziellen Inline einzustellen.

Satya Vorschlag der Einstellung MAX_NUM = 0 funktioniert perfekt.

Per dem Django docs auf der Modelform Klasse:

  

Für Benutzer mit JavaScript-fähigen Browser, ein „Einen weiteren hinzufügen“ -Link vorgesehen ist eine beliebige Anzahl zusätzlicher inlines zu ermöglichen, zusätzlich zu den als Folge der zusätzlichen Argument bereitgestellt hinzugefügt werden.

     

Der dynamische Link wird nicht angezeigt, wenn die Anzahl der aktuell angezeigte Formen MAX_NUM überschreitet, oder wenn der Benutzer nicht über JavaScript aktiviert ist.

und

  

Wie bei regulären Formularsätze können Sie die MAX_NUM und zusätzliche Parameter verwenden, um modelformset_factory die Anzahl der angezeigten zusätzlichen Formen zu begrenzen.

     

MAX_NUM nicht daran hindert, Objekte aus bestehenden werden angezeigt

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top