0

モデルフィールドのタイトルを検証する方法は?たとえば、タイトルフィールドのすべての使用が「ブログ」という単語で始まった場合はどうでしょうか。

models.py

class TitleAbstract(models.Model):
    title = models.CharField(max_length=255)
    class Meta:
        abstract = True

class Blog(TitleAbstract):
    ..............

forms.py

class BlogForm(forms.ModelForm):
     class Meta:
         model = Blog

views.py

class BlogCreateView(CreateView):
     model = Blog
     action = 'created'
4

1 に答える 1

0

validators.py

from django.core.exceptions import ValidationError

def validate_title(value):
    if not value.lower().startswith(u'blog'):
        msg = u"Enter a value starting with 'Blog'"
        raise ValidationError(msg)

forms.py

class BlogForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
    super(BlogForm, self).__init__(*args, **kwargs)
    self.fields['title'].validators = [validate_title]

    class Meta:
        model = Blog

views.py

class BlogCreateView(CreateView):
    model = Blog
    action = 'created'
    form_class = BlogForm
于 2013-02-11T05:16:06.753 に答える