我正在尝试显示选择字段中的值。使用以下方法,导致“存储”模型中断(从管理员中单击它)
错误是:
TypeError __str__ returned non-string (type int)
当我将str更改为int时,错误停止-但它不显示区域选择(仅显示“ Region Object”)。
country_list = ['Global', 'Australia', 'United Kingdom', 'United States']
Region_CHOICES = tuple(enumerate(country_list, start=1))
class Region (models.Model):
region = models.IntegerField(choices=Region_CHOICES)
def __str__(self):
return self.region
class Store(models.Model):
store_name = models.CharField(max_length=30)
region = models.ManyToManyField(Region, blank=True)
我如何才能正确地将Region作为选择返回(从单词列表中而不是整数本身)?
最佳答案
问题是您的__str__
方法必须返回类型为str
的对象。
由于索引是self.region
中存储的内容,因此您可以简单地进行查找:
class Region(models.Model):
...
def __str__(self):
return Region_CHOICES[self.region][1]
关于python - 在管理员中将整数选择值显示为字符(非整数),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33511922/