我正在开发我的Djnago应用程序,用于从管理员前端将数据处理到数据库中。我有一个带有两个外键的表。
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
当我尝试返回上述字段时,对于添加到表中的所有值,它在admin UI中显示为exam_questions对象。有没有一种方法来获取显示在管理界面中的列的实际值。
我还有其他具有不同定义的表,并且能够显示其中的必填字段。仅当模型中的所有键均为外键时,才会观察到此问题
任何帮助表示赞赏。
您需要在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添加到指向相关实例ID的FK中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句