Как проверить, есть ли у внешнего ключа атрибут в его модели?

У меня есть модель с именем Product

class Product(models.Model):
    order = models.ForeignKey(Order, on_delete=models.CASCADE)

Я нахожусь в Product views.py, как я могу проверить, существует ли атрибут в модели 'Order'?

Я пытаюсь сделать следующее ->

hasattr(Product, "order__name")

Вы можете проверить, имеет ли целевая модель атрибут name с помощью:

hasattr(Product.order.field.related_model, 'name')

Здесь мы обращаемся к ForeignKey и получаем ссылку на модель, на которую она нацелена, в данном случае модель Order, затем мы можем проверить, есть ли у этой модели атрибут name.

Довольно странно, что Product однако имеет ForeignKey к Order. Обычно все происходит наоборот: Order имеет множество "OrderLine", которые затем имеют ForeignKey к Product, с которыми имеют дело эти порядковые линии.

Вернуться на верх