2010-06-22 78 views
1

我有一个隐私表单,在我选择什么应用程序应该隐藏时访问用户的配置文件。 该表单包含多个复选框,用户检查他想隐藏的内容。我想要的是,当用户访问此表单时,如果表单已经存在,表单将成为隐私表单的一个实例。 我的意思是,如果我已经检查了隐藏应用程序1,当我再次访问表单时,将检查相应的复选框。Django预填充数据库中的字段形式

我的代码:

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'] 

回答

5

你只需要当实例的形式else子句中,就像你的POST做设置实例。

+0

是的,你是对的!在工作,在忙!谢谢! – dana 2010-06-22 17:39:14