【问题标题】:Display "true" checkboxinput in django在 django 中显示“true”复选框输入
【发布时间】:2012-07-30 17:06:39
【问题描述】:

从我的数据库中获取数据后,我试图在表单中显示一些复选框。 我有一些字段可以设置是否公开。该复选框始终“未选中”。

我的班级:

class PrivacyForm(forms.Form):
    geburtsdatum=forms.CheckboxInput()
    strasse=forms.CheckboxInput()
    plz=forms.CheckboxInput()
    ort=forms.CheckboxInput()
    land=forms.CheckboxInput()
    fon=forms.CheckboxInput()

我的方法:

@login_required
def edit_privacy(request,template_name='user/edit_privacy.html'):
    user=Users.objects.get(id_u=request.user.id)
    if request.method=='POST':
        form=PrivacyForm(request.POST)
        if form.is_valid():
        #
            render_to_response('user/public_profil.html',{'profil':user},context_instance=RequestContext(request))
        else:
            msg="make sure all fields are entered and valid"
    else:
    #form
        form=PrivacyForm()
        msg="Select what you want to be public"

    return render_to_response(template_name,{'form':form,'profil':user,'msg':msg},context_instance=RequestContext(request))

还有我的表格:

{% extends "home/portal.html" %}

{% block body %}
    <h3>::::: PRIVATSPHÄRE :::::</h3>
{{msg}}
<form id="formSearch" action="/user/privacy/" method="post">
{% csrf_token %}
    {{form.as_p}}
    <input type="submit" value="Speichern" class="button"/>
</form>
{% endblock %}

任何帮助将不胜感激。谢谢:)

【问题讨论】:

    标签: python django forms checkbox


    【解决方案1】:

    我不确定您是如何使用此表单的,但这会起作用:

    class PrivacyForm(forms.Form):
        geburtsdatum=forms.BooleanField()
        strasse=forms.BooleanField()
        plz=forms.BooleanField()
        ort=forms.BooleanField()
        land=forms.BooleanField()
        fon=forms.BooleanField()
    

    然后在视图代码中,可以设置初始值:

     form=PrivacyForm(initial={'geburtsdatum': True,
                               'strasse': True,...})
    

    这会将指定的复选框呈现为选中(如果“真”)或未选中(如果“假”)..

    【讨论】:

    • @blfuentes:Tisho 一针见血。 forms.CheckboxInput 是一个widget,而不是一个表单域。您必须使用forms.BooleanField,它使用forms.CheckboxInput 作为其默认小部件。
    【解决方案2】:

    你可以在这里查看!

    https://docs.djangoproject.com/en/dev/topics/forms/modelforms/

    class  PrivacyForm(models.Model):
           pass
    
    form = PrivacyForm(object_provacy_model_item)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-08
      • 2012-06-05
      • 1970-01-01
      • 1970-01-01
      • 2018-10-01
      • 2016-11-04
      • 2016-10-31
      相关资源
      最近更新 更多