0

Ich habe das folgende Modell in einer Django-App: Wie kann ich das Attribut "name" eines ausgewählten content_object in diesem Modell abrufen und es stattdessen in list_display der modelAdmin-Klasse anzeigen nur die Schlüssel der GenericForeign Key-Objekte anzuzeigen. Bitte, ich brauche wirklich Hilfe dabei.Erhalte das Namensattribut eines GenericForeign-Schlüsselobjekts

class Checkout(models.Model): 
    checkout_date = models.DateTimeField(auto_now_add=True) 
    updated = models.DateTimeField(auto_now=True) 
    check_in_complete = models.BooleanField(default=False, editable=False) 
    content_type = models.ForeignKey(ContentType, 
            limit_choices_to={"model__in": ('Facilitator', 'Enumerator', 'Tutor')}) 
    object_id = models.PositiveIntegerField(verbose_name='Receiver') 
    content_object = GenericForeignKey('content_type', 'object_id') 
+0

Haben Sie versucht, 'my_checkout.content_object.name'? – Selcuk

Antwort

0

Da GenericForeignKey ist kein normales Feldobjekt, können Sie es nicht in Filter verwenden:

Checkout.objects.filter(content_object=other_obj) # this will fail 

Aber wenn Sie die name Eigenschaft des Objekts Ihre Kasse zugeordnet ist, zugreifen möchten GenericForeignKey mit der Verwendung Sie können es wie folgt vor:

name = checkout_obj.content_object.name 
+0

obj.content_object funktioniert gut. Bitte bestätigen Sie an Ihrem Ende. Checkout.objects.filter (content_object = other_obj) wird fehlschlagen, wie Sie sagten – rohanagarwal

+0

Danke, Sie haben Recht !. Ich habe meine Antwort aktualisiert. Ich war damit verwirrt, dass es in Filtern nicht funktioniert. Es funktioniert direkt auf einem Objekt. – AKS

Verwandte Themen