2010-11-29 21 views
5

Bir yönetici, bir kullanıcı silemezsiniz, böylece bir doğrulama yapmaya çalışıyorum. Bu nedenle, yönetici olan ve silinmek üzere işaretlenmiş bir kullanıcı varsa bir hata kontrol etmek ve yükseltmek isterim. django-admin satır içi formlarda silme doğrulanıyor

Bu

benim inline ModelForm

class UserGroupsForm(forms.ModelForm): 
    class Meta: 
     model = UserGroups 

    def clean(self): 
     delete_checked = self.fields['DELETE'].widget.value_from_datadict(
      self.data, self.files, self.add_prefix('DELETE')) 
     if bool(delete_checked): 
      #if user is admin of group x 
      raise forms.ValidationError('You cannot delete a user that is the group administrator') 

     return self.cleaned_data 

if bool(delete_checked): koşul doğru döner ve malzeme if blok işletilirse içeride ama bu doğrulama hatası kaldırdı asla nedense içindir. Birisi bana nedenini açıklayabilir mi?

Daha iyisi yapmak için başka iyi bir yolu varsa bu beni

cevap

6

bildirin lütfen buldum çözüm yerine ModelForm

class UserGroupsInlineFormset(forms.models.BaseInlineFormSet): 

    def clean(self): 
     delete_checked = False 

     for form in self.forms: 
      try: 
       if form.cleaned_data: 
        if form.cleaned_data['DELETE']: 
         delete_checked = True 

      except AttributeError: 
       pass 

     if delete_checked: 
      raise forms.ValidationError(u'You cannot delete a user that is the group administrator') 
arasında InlineFormSet yılında clean oldu