【问题标题】:Django prepopulate form with the fields from the databaseDjango 使用数据库中的字段预填充表单
【发布时间】:2011-03-06 22:21:16
【问题描述】:

我有一个隐私表单,我在其中选择在访问用户个人资料时应该隐藏哪些应用程序。 表单包含几个复选框,用户检查他想要隐藏的内容。我想要的是,当用户访问此表单时,该表单将成为已保存的隐私表单的一个实例,如果它存在的话。 我的意思是,如果我已经勾选了隐藏应用程序 1,当我再次访问表单时,相应的复选框将被勾选。

我的代码:

def save_privacy(request):
   if request.method == 'POST':
        try:
           u = Privacy.objects.get(user_privacy = request.user)
           form = PrivacyForm(request.POST, instance=u )  
        except ObjectDoesNotExist:
             form = PrivacyForm(request.POST, request.FILES)
        if form.is_valid():           

           new_obj = form.save(commit=False)
           new_obj.user_privacy = request.user

           new_obj.save()
           return HttpResponseRedirect('/accounts/private_profile/')    
   else:
           form = PrivacyForm()     
   return render_to_response('privacy/set_privacy.html', {
           'form': form,
           }, 
          context_instance=RequestContext(request)) 

还有我的表格:

class PrivacyForm(ModelForm):
    class Meta:
          model = Privacy
          fields = ['restrict_cv','restrict_blog','friends_of_friends','restrict_followers','restrict_following']

【问题讨论】:

    标签: django forms instance populate


    【解决方案1】:

    您只需要在 else 子句中实例化表单时设置实例,就像您为 POST 所做的那样。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-08-15
      • 1970-01-01
      • 1970-01-01
      • 2019-03-19
      • 2012-08-14
      • 2015-02-09
      • 2011-06-12
      相关资源
      最近更新 更多