【发布时间】:2018-09-19 16:30:02
【问题描述】:
为简单起见,使用如下模型:
class Plan(models.Model)
name = models.CharField(max_length=255, verbose_name="Phone Plan Name")
monthly_charge = models.FloatField()
class Company(models.Model):
name = models.CharField(max_length=255, verbose_name="Company Full Name")
phone_plan = models.ForeignKey(Plan)
class Client(models.Model):
name = models.CharField(max_length=255, verbose_name="Client Full Name")
company = models.ForeignKey(Company)
给定一个字符串,我想知道是否有一种简单的方法可以检索模型属性的详细名称,即使该字符串遍历外键。
我知道我可以通过
获得Client 属性的详细名称
Client._meta.get_field("name").verbose_name
这将导致“客户全名”。
但是如果我有字符串“company__phone_plan__name”,我不能简单地使用
Client._meta.get_field("company__phone_plan__name").verbose_name
到达“电话计划名称”,因为它会产生错误。
这些字符串将是动态的,所以我想知道获得属性正确详细名称的最简单方法是什么,即使它遍历模型也是如此?
这个特例使用的是 Django 1.11
【问题讨论】:
标签: django django-models meta