Python Django管理员管理添加/编辑表单中的外键

Python Django管理员管理添加/编辑表单中的外键,python,django,django-models,django-admin,django-orm,Python,Django,Django Models,Django Admin,Django Orm,在我的django应用程序中,我有以下型号: class temp_test_keywords(models.Model): id = models.AutoField(primary_key=True) main_id = models.ForeignKey(temp_main, on_delete=models.CASCADE, related_name='tm_ttk') test_id = models.ForeignKey(temp_case, on_delet

在我的django应用程序中,我有以下型号:

class temp_test_keywords(models.Model):
    id = models.AutoField(primary_key=True)
    main_id = models.ForeignKey(temp_main, on_delete=models.CASCADE, related_name='tm_ttk')
    test_id = models.ForeignKey(temp_case, on_delete=models.CASCADE, related_name='tc_ttk')
    key_id = models.ForeignKey(temp_keywords, on_delete=models.CASCADE, related_name='tk_ttk')
    key_val = models.CharField(max_length=200, null=True, blank=True, verbose_name='Value')
    key_group = models.CharField(max_length=200, null=True, blank=True, verbose_name='Group')
    #Fields for API permissions
    owner = models.ForeignKey('auth.User', related_name='ttestkey_owner', on_delete=models.CASCADE, verbose_name="API Owner")
在admin.py中,我为管理列表、添加和编辑选项创建相对的
ModelAdmin

class temp_test_keywordsAdmin(admin.ModelAdmin):

    list_filter = ('main_id__descr', 'test_id__descr')
    list_display = ('get_main_id', 'get_test_id', 'key_id', 'key_val', 'key_group')

    def get_main_id(self, obj):
        return obj.main_id.descr

    def get_test_id(self, obj):
        return obj.test_id.descr

    get_main_id.short_description = 'Main Template'
    get_main_id.admin_order_field = 'main_id__descr'

    get_test_id.short_description = 'Test Case'
    get_test_id.admin_order_field = 'test_id__descr'
现在,当我在
changelist\u视图
模板中查看m数据时,所有操作都已完成,但当我尝试在测试id字段中添加或编辑记录时,我看到的是对象(
test\u case\u obj(1)
),而不是
descr
字段。 如何管理添加/编辑管理表单中指向特定字段的
ForeignKey


非常感谢您在模型中为此定义
\uuu str\uuu
方法。例如:

class temp_case(models.Model):
    ...

    def __str__(self):
        return "%s" % (self.descr)
如果您想在“管理”面板上为您的对象创建其他表示形式,可以创建自定义表单,并根据文档为
modelcooicefield
定义自定义表示形式

文档建议将
modelcooicefield
子类化,并覆盖
label\u from\u instance
方法

希望能有帮助