我有一个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
还有我的views.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'
并且本地vars参数正在发送一个列表:
[u'choice_one', u'choice_two', u'choice_three']
所有html" target="_blank">表单字段都显示正确,但是当我提交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))
应该提到的是,你可以通过几种不同的方式来建立配置文件,包括继承。也就是说,这也应该为你工作。
问题内容: 我需要具有2个字段的django modelform,其中第二个字段选择列表取决于在第一个字段中选择的内容。我的模特: 如果vehicle_type设置为 personal, 如何将 make 字段的选择设置为 PERSONAL_MAKES ?我怎样才能做到这一点?在模型级别上可以吗? __ 问题答案: 您可能不能,因为这取决于用户与表单的交互:您的服务器无法预先知道用户将表单发送到浏
问题内容: 我有以下型号: 在管理界面中,当创建新演示时,在用户从下拉列表中选择类别之后,我想限制“项目”下拉列表中的选择数量。如果用户选择其他类别,则项目选择应相应更新。我想在客户端上限制项目选择,甚至在服务器上进行表单验证之前。这是为了提高可用性,因为项目列表可能超过1000个,能够按类别缩小范围将有助于使其更易于管理。 是这样做的“捷径”还是自定义JavaScript是这里的唯一选择? 问题
我有以下实体: 我想在JPQL中执行以下查询: 但我一直有错误如下 无法准备声明;SQL[选择计数(独立)作为COLU_0_u0_u从座位座位0_u开始,座位可用率可用率1_u,费率2_u其中座位0_u。标识符=availabler1。座位标识和可用座位1。可用率标识符=率2。标识符和=坐下。性能(标识符);嵌套的异常是org。冬眠例外SQLGrammarException:无法准备语句 我怎样才
我想调用一个函数时,选择的任何选项。类似于这样: 但不知何故不起作用。有人能帮忙吗。 请注意 我不想捕获更改事件,如果我选择已经选择选项,则不会触发更改事件
问题内容: 假设我们在Django中有一个定义如下的模型: 名称字段不是唯一的,因此可以具有重复的值。我需要完成以下任务:从模型中选择具有至少一个name字段重复值的所有行。 我知道如何使用普通的SQL来做到这一点(可能不是最好的解决方案): 因此,可以使用django ORM选择它吗?还是更好的SQL解决方案? 问题答案: 尝试: 这与使用Django所获得的效果非常接近。问题在于这将返回一个w
问题内容: 如何根据“ DateAdded”字段选择一个字段的使用天数? 例如: 问题答案: 使用: 参考:DATEDIFF DATEDIFF()返回expr1到expr2,表示为从一个日期到另一个日期的天数值。