在Django模型中访问ForeignKey实例字段
我在用Django运行一个数据库查询时遇到了一些困难,特别是我想要把查询结果可视化。假设我定义了几个简单的模型:
class Pizza(models.Model):
name = models.CharField()
...
class Topping(models.Model):
pizza = models.ForeignKey('pizza')
# Get the name of pizza here
补充一下:我需要在另一个字段中访问名字,而不是在实例方法里。这可能吗?
我现在不知道该怎么做。我试过
pizza.name
但没有成功。任何建议都会非常感谢。
2 个回答
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()
1
简单来说:
topping = Topping.objects.get(pk=1)
print(topping.pizza.name)