Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Django的管理页面更改外键项的名称_Django_Django Models - Fatal编程技术网

在Django的管理页面更改外键项的名称

在Django的管理页面更改外键项的名称,django,django-models,Django,Django Models,我创建了两个Django模型,其中一个模型的字段是另一个模型的外键(如下所示) 然后通过admin.site.register将这些模型注册到管理员站点。将项添加到表中时,目标单位正确地反映了表单位中的项,但这些项在下拉列表中表示,每个项的名称为Units对象 如何在管理配置页面的管理下拉列表中将名称设置为Units.name?当我开始玩管理屏幕时,我也遇到了同样的问题。我不知道是否有更好的方法可以做到这一点,但我所做的是修改models.py文件,告诉我的类作为默认字符串返回什么。在您的情况下

我创建了两个Django模型,其中一个模型的字段是另一个模型的外键(如下所示)

然后通过
admin.site.register
将这些模型注册到管理员站点。将项添加到表中时,目标单位正确地反映了表单位中的项,但这些项在下拉列表中表示,每个项的名称为Units对象


如何在管理配置页面的管理下拉列表中将名称设置为Units.name?

当我开始玩管理屏幕时,我也遇到了同样的问题。我不知道是否有更好的方法可以做到这一点,但我所做的是修改models.py文件,告诉我的类作为默认字符串返回什么。在您的情况下,我要做的是将以下内容添加到Units类定义中

class Units(models.Model):
    name = models.CharField(max_length=10, primary_key=True)
    symbol = models.CharField(max_length=5)

    def __str__(self):
        return self.name

这样,当您使用表的外键链接时,django将在下拉列表中显示每个单元的名称,而不是一次又一次地显示“单元”一词。

当我开始玩管理屏幕时,我也遇到了同样的问题。我不知道是否有更好的方法可以做到这一点,但我所做的是修改models.py文件,告诉我的类作为默认字符串返回什么。在您的情况下,我要做的是将以下内容添加到Units类定义中

class Units(models.Model):
    name = models.CharField(max_length=10, primary_key=True)
    symbol = models.CharField(max_length=5)

    def __str__(self):
        return self.name

这样,当您使用表的外键链接时,django将在下拉列表中显示每个单元的名称,而不是一次又一次地显示“单元”这个词。

在这种情况下,这非常有效(因为单元总是按名称引用),但是我觉得必须有一种方法通过admin.py文件来实现这一点。在这种情况下,这非常有效(因为单元总是按名称引用)但是我觉得一定有办法通过admin.py文件实现这一点。