You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Django的ForeignKey字段中实现可滚动下拉框?

实现City下拉框滚动功能的两种方法

不需要修改models.py中的ForeignKey参数,以下两种方案任选其一即可:

方案一:通过表单控件定制 + CSS 实现

  1. 修改forms.py,为City字段的Select组件添加自定义类名:
from django import forms
from .models import Profile

class ProfileForm(forms.ModelForm):
    class Meta:
        model = Profile
        fields = '__all__'
        exclude = ('user',)
        widgets = {
            # 给city下拉框添加自定义样式类
            'city': forms.Select(attrs={'class': 'scrollable-city-select'}),
        }
  1. 在你的CSS文件(或模板的<style>标签)中添加样式,限制下拉框高度并开启垂直滚动:
.scrollable-city-select {
    max-height: 200px; /* 可根据需求调整高度 */
    overflow-y: auto;
}

方案二:直接通过前端CSS控制(无需修改表单代码)

如果不想改动表单逻辑,可以直接针对City下拉框的HTML元素写CSS规则。Django自动生成的select元素会带有id="id_city",直接用这个ID定位即可:

#id_city {
    max-height: 200px;
    overflow-y: auto;
}

把这段CSS加到你的页面样式中即可生效。

注意:如果使用Bootstrap,可能需要额外调整样式优先级,确保自定义样式能覆盖默认样式。

内容的提问来源于stack exchange,提问作者Omnia Osman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 00:42:14