class Country(models.Model):
name = models.CharField(max_length=100)
code = models.CharField(max_length=100)
class Info(models.Model)
country_name = models.ForeignKey(Country, on_delete=models.CASCADE)
country_code = models.ForeignKey(Country, on_delete=models.CASCADE)
info = models.CharField(max_length=100)
在管理界面中,在'Info'模型中添加对象时,'country_name'字段默认显示国家/地区ID。但我想显示国家/地区名称而不是 ID。
同样,'Info' 模型的'country_code' 字段也默认显示国家/地区的 ID。但我想显示国家/地区代码而不是 ID。
如何做到这一点?
答案 0 :(得分:0)
试试这个:
您将从 __str__
返回的值将显示在 admin 中。
class Country(models.Model):
name = models.CharField(max_length=100)
code = models.CharField(max_length=100)
def __str__(self):
return self.name
class Info(models.Model)
country_name = models.ForeignKey(Country, on_delete=models.CASCADE)
country_code = models.ForeignKey(Country, on_delete=models.CASCADE)
info = models.CharField(max_length=100)
def __str__(self):
return str(self.country_name.name)
为什么要使用 2 个字段来获得相同的结果?您的信息模型应该是:
class Info(models.Model)
country_name = models.ForeignKey(Country, on_delete=models.CASCADE)
info = models.CharField(max_length=100)
def __str__(self):
return str(self.country_name.code)