Django 多项选择字段/复选框选择多个

2023-12-22

我有一个 Django 应用程序,想要在用户的个人资料中显示多项选择复选框。然后他们将能够选择多个项目。

这是我的 models.py 的简化版本:

from profiles.choices import SAMPLE_CHOICES

class Profile(models.Model):
    user = models.ForeignKey(User, unique=True, verbose_name_('user'))
    choice_field = models.CharField(_('Some choices...'), choices=SAMPLE_CHOICES, max_length=50)

我的表格类:

class ProfileForm(forms.ModelForm):
    choice_field = forms.MultipleChoiceField(choices=SAMPLE_CHOICES, widget=forms.CheckboxSelectMultiple)

    class Meta:
        model = Profile

我的观点.py:

if request.method == "POST":
    profile_form = form_class(request.POST, instance=profile)
    if profile_form.is_valid():
        ...
        profile.save()
return render_to_response(template_name, {"profile_form": profile_form,}, context_instance=RequestContext(request))

我可以看到 POST 只发送一个值:

choice_field u'choice_three' 

本地变量参数正在发送一个列表:

[u'choice_one', u'choice_two', u'choice_three']

所有表单字段都显示正确,但当我提交 POST 时,出现错误

绑定参数 7 时出错 - 可能是不受支持的类型。

我需要在视图中进一步处理多项选择字段吗?模型字段类型是否正确?任何帮助或参考将不胜感激。


配置文件选择需要设置为 ManyToManyField 才能正常工作。

所以......你的模型应该是这样的:

class Choices(models.Model):
  description = models.CharField(max_length=300)

class Profile(models.Model):
  user = models.ForeignKey(User, blank=True, unique=True, verbose_name='user')
  choices = models.ManyToManyField(Choices)

然后,同步数据库并加载包含您希望可用的各种选项的选项。

现在,ModelForm 将自行构建......

class ProfileForm(forms.ModelForm):
  Meta:
    model = Profile
    exclude = ['user']

最后,观点:

if request.method=='POST':
  form = ProfileForm(request.POST)
  if form.is_valid():
    profile = form.save(commit=False)
    profile.user = request.user
    profile.save()
else:
  form = ProfileForm()

return render_to_response(template_name, {"profile_form": form}, context_instance=RequestContext(request))

应该提到的是,您可以通过几种不同的方式设置配置文件,包括继承。也就是说,这也应该适合您。

祝你好运。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django 多项选择字段/复选框选择多个 的相关文章

随机推荐

  • SQL 中的循环行

    我正在寻找类似的输出 最近 日期 评论 第二个最近 日期 评论 Example Book Comments BookA 27 03 13 comment1 21 03 13 comment2 21 03 13 uhuuuu and so o
  • 基于数量的价格计算器[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试创建一个简单的脚本来添加到我的 html 网站 我需要它根据用户输入的数量计算价格 例如 1 1000 的值将乘以 1 50 并
  • Flex 4 组显示效果/隐藏效果

    我有一个组 我想在显示和隐藏时执行擦除效果
  • Drupal 7 在“首次加载”时太慢

    我希望有人能帮助我解决这个 Drupal 7 问题 我注意到 当我 第一次 输入网站地址时 加载时间非常慢 开始加载文件和显示内容大约需要 20 平均 秒 好像有一些延迟 然而 在那段时间之后 速度非常快 一切都很好 页面加载后 我们可以快
  • 在 NLTK 解析器中使用整数/日期作为终端

    我正在尝试使用 NLTK 中的 Earley 解析器来解析句子 例如 如果日期早于 12 21 2010 则序列号 10 为此 我尝试编写一个 CFG 但问题是我需要使用日期和整数的通用格式作为终端 而不是特定值 有没有什么方法可以将生产规
  • 列出SD卡中的所有图像

    您好 我正在开发 Android Gallery 应用程序 我正在从 SD 卡中的文件夹中获取图像并将其显示在网格视图上 如下所示 public static ArrayList
  • Linq - 如何在变量中存储“where条件”

    是否可以将此 linq 语句中的Where条件存储在变量中 Func
  • 使用 z-index 覆盖 DIV

    我试图在整个页面上覆盖一个 div 以显示弹出窗口 问题是 它不会覆盖整个页面 这是代码的近似值 div div style width 100 height 100 Overlay div Contents of container 1
  • angularjs 按顺序链 http post

    在我的应用程序中 我将数据存储在本地存储中并在后台触发异步 http post 成功发布后 发布的数据将从本地存储中删除 当 http post 正在进行时 可能会有更多数据添加到本地存储中 因此我需要将 post 排队并按顺序处理它 因为
  • 在 ABPeoplePickerNavigationController 上取消选择RowAtIndexPath

    我在我的应用程序中将 ABPeoplePickerNavigationController 显示为选项卡 用户单击姓名 然后单击电子邮件地址 然后我对电子邮件地址执行某些操作 之后 我希望他们选择的人和财产淡出 不突出显示 在普通表中 我会
  • getOutputStream() 上的设备上“没有到主机的路由” - 无线连接

    private String urlPost http 192 168 1 66 8080 DataCollectionServlet Override protected void doWakefulWork Intent intent
  • 使用泛型类型构造函数时,Null (?) 运算符返回不正确的值。网络

    使用通用类型和空运算符时 我遇到一些奇怪的行为 为什么 obj2 CurrentDate 返回的日期值在使用时看起来不正确 简写 如果我在属性中长期使用 null 运算符 if 那么它会返回正确的预期值 我以为 相当于 if 表达式 ret
  • 配置 Kafka 以接受来自 Docker 内部和外部的客户端

    我正在 Docker 网络中运行 Apache Kafka Kafka Broker 的容器称为 docker kafka 我想要的是允许来自另一个 docker 容器以及 docker 主机的 Kafka 客户端的连接 docker ka
  • 复制关系表数据

    我希望我在这个问题上不会太啰嗦 我只是想确保我所问的内容完全清楚 我认为这相当令人困惑 我有一个数据库 其中有一堆表 并且设置了所有外键约束 关系有时会深达几张表 并且也存在子级与多个父表相关的情况 我想插入 顶级 表行之一的副本以及与其相
  • 体系结构 x86_64 的未定义符号:OS X、Boost Log、CMake

    链接的另一个问题 操作系统 X 10 9 5 x64 跨平台项目正在使用 CMake 工具链构建 使用升压 将所有可执行文件与 Boost Log 链接时出错 确实找到了 BOOST PATH 单元测试与 Boost Test 成功链接 第
  • Java - 通过浏览器/URL 连接到 ServerSocket

    我正在编写一个软件 并且受到无法使用套接字连接到使用 ServerSocket 的 java 应用程序的限制 我想我应该尝试使用 URL 连接 因为可以定义要连接到的端口 e g 127 0 0 1 62666 我的服务器应用程序正在侦听连
  • 无法建立到服务器的链接

    一个非常简单的插入函数 它给出了一些令人讨厌的错误 Like Warning mysql query Access denied for user one com using password NO in customers be be h
  • 编写一个程序来抓取论坛

    我需要编写一个程序来抓取论坛 我应该使用 Scrapy 框架用 Python 编写程序还是应该使用 Php cURL 还有与 Scrapy 相当的 Php 吗 Thanks 我会选择 Python 因为它具有卓越的 libxml2 绑定 特
  • 如何从unix连接到oracle数据库

    我正在尝试从我的 UNIX 机器连接到 Oracle 数据库 总的来说 我对剧本写作很陌生 我知道如何浏览unix并编写了基本脚本 读取 显示 并使用bash命令执行它们 我还知道如何查看 unix 中的变量 用户和系统 你能告诉我需要做什
  • Django 多项选择字段/复选框选择多个

    我有一个 Django 应用程序 想要在用户的个人资料中显示多项选择复选框 然后他们将能够选择多个项目 这是我的 models py 的简化版本 from profiles choices import SAMPLE CHOICES cla