forms.py 908 Bytes
from django.utils.translation import ugettext_lazy as _
from django import forms

from .models import Book


class BookForm(forms.ModelForm):

    title = forms.CharField(
        label=_('Titulo'),
        max_length=250,
        required=False,
        widget=forms.TextInput(
            attrs={'class': 'form-control', 'placeholder': _('Titulo')}
        )
    )

    class Meta:
        model = Book
        fields = ('title',)

    def clean_title(self):
        """
        Validación de titulo.
        :return:
        """
        title = self.cleaned_data.get('title', None)

        if not title:
            raise forms.ValidationError(_('Este campo es obligatorio.'))
        if title[0].islower():
            raise forms.ValidationError(_('El título debe empezar por una mayúscula.'))
        return title

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)