2013-08-20 32 views
1

如果Django管理中的字段爲空,我想顯示錯誤消息。目前,我知道如何在頁面的早期引入ValidationError,但我需要將消息放在空白字段的正上方。如何才能做到這一點?如何在字段上顯示錯誤消息

還未能找到答案。

class Article(models.Model): 
    ... 
    title_ru = models.CharField(max_length=255, blank=True) 
    ... 

class ArticleAdmin(admin.ModelAdmin): 

    class form(forms.ModelForm): 

     class Meta: 
     model = models.Article 

    def clean(self): 
     cleaned_data = super(forms.ModelForm, self).clean() 
     title_ru = cleaned_data['title_ru'] 
     if not title_ru: 
      raise forms.ValidationError("Title ru") 

     return self.cleaned_data 

forms.ValidationError("Title ru")顯示在頁面頂部的消息,但我需要這個消息在該場

如何得到的消息出過場Title_ru?

回答

2

由於您在clean方法中提出ValidationError,因此您會在頁面頂部看到錯誤消息。提高在clean_title_ru代替

def clean_title_ru(self): 
    title_ru = self.cleaned_data['title_ru'] 
    if not title_ru: 
     raise forms.ValidationError("Title ru") 

    return self.cleaned_data['title_ru'] 
+0

非常感謝您對這樣一個快速和簡單的答案=)現在我知道如何去做,也可以在文檔中找到。 –

+0

很高興幫助。如果這有用,請做[標記答案已被接受](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)。 – karthikr

0

最好的辦法是在clean_title_ru檢查值驗證錯誤,但是如果你要檢查多個值,你可以做什麼樣的方式:

def clean(self): 
    cleaned_data = super(forms.ModelForm, self).clean() 
    title_ru = cleaned_data['title_ru'] 
    if not title_ru: 
     msg = u"error in Title ru" 
     self._errors["title_ru"] = self.error_class([msg]) 

     # These fields are no longer valid. Remove them from the cleaned data. 
     del cleaned_data["title_ru"] 

    return self.cleaned_data