2009-11-08 10 views
1

avec Django forme vous pouvez spécifier widget:forme Django pour le modèle

class LoginForm(forms.Form): 
    email = forms.CharField(
     max_length = 30, 
     widget = forms.TextInput(
      attrs = {'class':'text required email', 'id':'email'})) 
    password = forms.CharField(
     max_length = 20, 
     widget = forms.PasswordInput(
      attrs = {'class':'text required', 'id':'password', 'minlength':'4'})) 

est-il possible de le faire dans les modèles?

class Order(models.Model): 
    name =    models.CharField(max_length = 256) 
    phone =    models.CharField(max_length = 256) 
    email =    models.CharField(max_length = 256) 
    start =    models.CharField(max_length = 256) 
    destination =   models.CharField(max_length = 256) 
    size =    models.CharField(max_length = 256) 

J'aimerais utiliser (spécifier la classe CSS) lors de la création sous forme de modèle comme:

class OrderForm(ModelForm): 
    class Meta: 
     model = Order 

Merci à l'avance, Etam.

Répondre

3

Vous pouvez utiliser la méthode suivante pour spécifier une classe CSS:

class IssueForm(forms.ModelForm): 
    """Form for adding issues.""" 

    def __init__(self, *args, **kwargs): 
     super(IssueForm, self).__init__(*args, **kwargs) 
     self.fields['description'].widget.attrs['class'] = "span-3 last" 

Laissez-moi savoir si vous avez besoin de plus - Bonne chance!

2

Non, mais vous pouvez redéfinir le widget en remplaçant les champs de votre modèle.

Une autre approche consisterait à implémenter la méthode __init__ et de modifier le widget ou attr dans les champs existants.