Получить атрибут имени ключевого объекта GenericForeign
У меня есть следующая модель в приложении Django: Как я могу получить атрибут "name" любого выбранного объекта content_object в этой модели и отобразить его в list_display класса modelAdmin вместо простого отображения ключей объектов Key GenericForeign. Пожалуйста, мне действительно нужна помощь с этим.
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')
1 ответ
Поскольку GenericForeignKey
не является обычным полевым объектом, вы не можете использовать его в фильтрах:
Checkout.objects.filter(content_object=other_obj) # this will fail
Но если вы хотите получить доступ к name
свойство объекта, к которому относится оформление заказа GenericForeignKey
Вы можете сделать это следующим образом:
name = checkout_obj.content_object.name