Django-guardian: django-polymorphe Fragen

Erstellt am 20. Sept. 2016  ·  5Kommentare  ·  Quelle: django-guardian/django-guardian

Ich habe viele Diskussionen über die Verwendung von Django-Guardian mit Django-Polymorphic gesehen, aber es ist für mich sehr verwirrend.
Stellen Sie sich diesen Fall vor:

class FeedPost(PolymorphicModel):  
    class Meta: 
        default_permissions = ('add', 'change', 'delete', 'view')  


class ArticleFeedPost(FeedPost):
    class Meta: 
        default_permissions = ('add', 'change', 'delete', 'view')

Wenn Sie in django-guardian 1.4.6 Berechtigungen für ArticleFeedPost festlegen, gelten diese Berechtigungen nicht für FeedPost.
Im Doc steht folgendes über polymorphe Objekte:
http://django-guardian.readthedocs.io/en/stable/configuration.html?highlight=polymorph#guardian -get-content-type
Aber es gibt kein Beispiel, das beschreibt, wie get_default_content_type verwendet wird.
Meine Fragen sind (übrigens tut es mir leid, diese Fragen hier zu stellen, aber ich habe hier eine bessere Chance auf eine Antwort als anderswo):

  • Wie können wir Berechtigungen an ein "übergeordnetes" polymorphes Objekt weitergeben?
  • Wie können wir die Guardian 1.5-Version bekommen (ich bin mit der Versionierung von django-Paketen nicht wirklich vertraut. Ist die 1.5-Version bereits veröffentlicht? Wenn ich "pip install --upgrade django-guardian" ausführe, sagt pip, dass 1.4.6 die letzte ist Ist es eine gute Idee, manuell zu aktualisieren, indem Sie dieses Repository herunterladen?)

Alle 5 Kommentare

Hallo,

Es ist ein django-polymorphes Problem, das spezifisch ist. django-polymorphic enthält Code für die Unterstützung von django-guardian, also suchen Sie nach django-polymorphen Dokumenten zur Unterstützung.

Grüße,

CC: @benkonrath

In Bezug auf die Versionsverwaltung freut sich bekannt zu geben, dass es die Aufmerksamkeit akzeptiert. In den nächsten Versionen wird korrigiert. GUARDIAN_GET_CONTENT_TYPE wurde in Django 1.4.6 veröffentlicht.

@BenDevelopment Die Funktion zum Abrufen des Inhaltstyps des Basismodells wurde erst kürzlich in django-polymorphic zusammengeführt. Wenn Sie den Inhaltstyp des Basismodells verwenden, funktionieren die Wächterberechtigungen für das Basismodell. Sie müssen diese Einstellung nur hinzufügen, wenn Sie die neueste veröffentlichte Version von django-guardian und die neueste Version von django-polymorphic von git verwenden:

 GUARDIAN_GET_CONTENT_TYPE = 'polymorphic.contrib.get_polymorphic_base_content_type'

Sie können den get_polymorphic_base_content_type Code auch kopieren und in Ihr eigenes Projekt einfügen, wenn Sie nicht die neueste Git-Version von django-polymorphic verwenden möchten.

Hier sind die unveröffentlichten Dokumente:

https://django-polymorphic.readthedocs.io/en/latest/third-party.html#django -guardian-support

@BenDevelopment Correction, die Einstellung sollte sein:

GUARDIAN_GET_CONTENT_TYPE = 'polymorphic.contrib.guardian.get_polymorphic_base_content_type'

Ich werde eine PR zu polymorph machen, um dies in den Dokumenten zu beheben.

Danke Jungs! Alles funktioniert gut 👍 💯 !

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

johnthagen picture johnthagen  ·  9Kommentare

g-as picture g-as  ·  10Kommentare

brianmay picture brianmay  ·  16Kommentare

Allan-Nava picture Allan-Nava  ·  35Kommentare

Allan-Nava picture Allan-Nava  ·  4Kommentare