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