2010-06-22 76 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