在Django管理UI中使用所有外键引用模型的对象

时间:2016-09-20 05:41:43

标签: python mysql django

我正在开发我的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中显示的列的实际值。

我有其他表有不同的定义,我可以从中显示所需的字段。仅当模型中的所有键都是外键时才会出现此问题

感谢任何帮助。

1 个答案:

答案 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。