我正在开发我的Djnago应用程序,用于从admin前端处理数据到DB。 我有一张包含两个外键的表。
class exam_questions(models.Model):
exam_id=models.ForeignKey(exams, on_delete=models.CASCADE)
question_id=models.ForeignKey(questions, on_delete=models.CASCADE)
def __int__(self):
return self.exam_id
当我尝试返回上述字段时,它会在管理界面中显示为exam_questions对象,用于添加到表格中的所有值。 有没有办法获得管理UI中显示的列的实际值。
我有其他表有不同的定义,我可以从中显示所需的字段。仅当模型中的所有键都是外键时才会出现此问题
感谢任何帮助。
答案 0 :(得分:2)
您需要在Django管理员的模型中提供有关您的python版本的__str__
或__unicode__
函数,以便能够列出具有适当预期信息的项目。
@python_2_unicode_compatible
class exam_questions(models.Model):
exam_id=models.ForeignKey(exams, on_delete=models.CASCADE)
question_id=models.ForeignKey(questions, on_delete=models.CASCADE)
def __int__(self):
return self.exam_id
def __str__(self):
return '%s - %s' % (self.exam_id.name, self.question_id.name)
如果您使用交叉版兼容性进行编码,则需要使用@python_2_unicode_compatible
修饰模型,并仅覆盖__str__
方法。
无论如何,为什么你的ForeignKeys
中有 _id ? Django自动将 _id 添加到FK,指向相关实例的id。