【问题标题】:Accessing ForeignKey instance fields in Django model在 Django 模型中访问 ForeignKey 实例字段
【发布时间】:2014-07-19 17:00:27
【问题描述】:

我在可视化要在 Django 中运行的数据库查询时遇到问题。假设我定义了几个简单的模型:

class Pizza(models.Model):
    name = models.CharField()
    ...

class Topping(models.Model):
    pizza = models.ForeignKey('pizza')
    # Get the name of pizza here

编辑:我需要在另一个字段中访问名称,而不是在实例方法中。这可能吗?

我目前不知道该怎么做。我试过了

pizza.name

但它不起作用。任何想法将不胜感激。

【问题讨论】:

标签: python database django relational-database


【解决方案1】:

要获取相关字段值,您需要一个模型实例,在您的情况下为Topping 类实例。例如,您可以在 Topping 类上定义自定义方法:

class Topping(models.Model):
    pizza = models.ForeignKey('pizza')

    def get_pizza_name(self):
        return self.pizza.name

self 这里指的是一个类实例。

示例用法:

topping = Topping.objects.get(pk=1)
print topping.get_pizza_name()

【讨论】:

    【解决方案2】:

    简单地说:

    topping = Topping.objects.get(pk=1)
    print(topping.pizza.name)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-15
      • 1970-01-01
      • 1970-01-01
      • 2017-04-17
      • 1970-01-01
      • 1970-01-01
      • 2010-10-31
      • 2018-03-01
      相关资源
      最近更新 更多