Как проверить, есть ли у внешнего ключа атрибут в его модели?
У меня есть модель с именем 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
, с которыми имеют дело эти порядковые линии.