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

Python 在Django管理UI中使用所有外键引用模型的对象,python,mysql,django,Python,Mysql,Django,我正在开发我的Djnago应用程序,用于将数据从管理前端处理到数据库中。 我有一张有两个外键的桌子 课堂试题(models.Model): 考试id=models.ForeignKey(考试,on\u delete=models.CASCADE) 问题\u id=models.ForeignKey(问题,关于\u delete=models.CASCADE) 定义内部(自我): 返回自我检查\u id 当我试图返回上面的字段时,它在管理UI中显示为表中添加的所有值的exam_questions对

我正在开发我的Djnago应用程序,用于将数据从管理前端处理到数据库中。 我有一张有两个外键的桌子

课堂试题(models.Model):
考试id=models.ForeignKey(考试,on\u delete=models.CASCADE)
问题\u id=models.ForeignKey(问题,关于\u delete=models.CASCADE)
定义内部(自我):
返回自我检查\u id

当我试图返回上面的字段时,它在管理UI中显示为表中添加的所有值的exam_questions对象。 是否有一种方法可以获取管理员界面中显示的列的实际值

我有其他具有不同定义的表,并且我能够从中显示所需字段。仅当模型中的所有键都是外键时,才会观察到该问题


非常感谢您的帮助。

您需要在Django admin的模型中提供与python版本相关的
\uuuuuu str\uuuuu
\uuuuuuuuuuu unicode\uuuuuuu
函数,以便能够列出包含正确预期信息的项目

@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\u 2\u unicode\u compatible
来装饰模型,并且只覆盖
\u str\u
方法


但是,为什么你的
外键中有id?Django会自动将_id添加到指向相关实例id的FKs中。

您需要在一个模型中为Django admin提供与python版本相关的
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu

@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\u 2\u unicode\u compatible
来装饰模型,并且只覆盖
\u str\u
方法


但是,为什么你的
外键中有id?Django会自动将_id添加到指向相关实例id的FKs中。

yes?你是说_id后缀?只需从模型定义中删除_id并进行新的迁移。是的..在实际数据库中,我得到了类似于问题_id的数据。对于在其他应用程序中使用db表,它应该只类似于问题_id,有没有办法去掉额外的参数,类似于我们在meta类中重写表名的方式?什么参数?你是说_id后缀?只需从模型定义中删除_id并进行新迁移。