2010-09-07 3 views
2

Есть ли способ добавить настраиваемое сообщение об ошибке в поле модели, не объявив его в форме как поле формы? Это возможно?Добавление пользовательских сообщений об ошибках в поле ModelForm

Я не хочу, чтобы снова заявить о поле, например

class MyModel(models.Model): 
    test = models.URLField(max_length = 200) 

class MyForm(forms.ModelForm): 
    test = forms.URLField(max_length = 200, error_messages={'required' : 'Custom error message'}) 
    class Meta: 
     model = models.test 

Есть ли способ, чтобы обеспечить сообщение об ошибке пользовательской без определения его снова в форме?

Edited Модель

class MyModel(models.Model): 
    link = models.URLField(verify_exists = False, max_length = 225, error_messages={'required' : 'Link cannot be left blank.'}) 

Редактировать

я должен уточнить, что у меня есть образец формы для моей модели. Это фактический код

class Story(models.Model): 
    title = models.CharField(max_length = 225, error_messages={'required' : 'cannot be left blank'}) 
    link = models.URLField(verify_exists = False, max_length = 225, error_messages={'required' : ugettext_lazy(u"Link cannot be left blank.") }) 

форма

class StoryForm(forms.ModelForm): 

    class Meta: 
     model = models.Story 
     fields = ('title', 'link') 

    def clean_link(self): 
     link = self.cleaned_data['link'] 
     return link.strip() 

    def clean_title(self): 
     title = self.cleaned_data['title'] 
     return title.strip() 

Я не хочу, чтобы объявить поля в моей форме, потому что тогда я бегу в этот вопрос обсуждался здесь

Cleaning data which is of type URLField

+0

Для тех, кто ищет решение http://code.djangoproject.com/ticket/13693 – iJK

ответ

0

Например, установив error_messages in model fields.

+0

Я пробовал это, но я не могу заставить его работать. Если оставить поле пустым, он всегда говорит «Требуется поле Thie». Это то, что у меня было link = models.URLField (verify_exists = False, max_length = 225, error_messages = {'required': 'Ссылка не может быть пуста.}} – iJK

+2

Был открытый билет в django (http: // code .djangoproject.com/билет/13693). Я исправил его с помощью патча. – iJK

+0

Yup, просто смотрел на него ... Кажется, он не работает. Я предпочел бы использовать обходной путь, а затем патч Django, если бы я был вами. –

Смежные вопросы