首页 > 解决方案 > 为什么外键显示为下拉框?

问题描述

嗨,只是想知道为什么当我尝试在模型中包含外键时,它会显示为下拉框而不是文本框?

这是我的models.py

class VolunteerApplication(models.Model):  

    volunteer_name = models.ForeignKey(VolunteerProfile, on_delete=models.PROTECT)
    phone_number = models.CharField(max_length=10)`

这是它在网站上显示的内容

1

标签: pythonhtmldjangodjango-modelsforeign-keys

解决方案


发生这种情况是因为它是一个外键。这是 django 管理员的默认渲染行为。

如果管理员试图在下拉列表中呈现太多对象,则管理屏幕会减慢/拒绝加载。

raw_id_fields 的问题是它不显示所选外键的字符串表示形式。一种无需下拉菜单即可查看外键预览的简单方法 - 使用django-dynamic-raw-id包。

https://github.com/lincolnloop/django-dynamic-raw-id


推荐阅读