2009-11-08 92 views
1

与Django表单,您可以指定窗口小部件:Django的形式模型

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'})) 

是有可能做到这一点的车型?

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) 

我很想用这个(指定CSS类)像模型创建表单时:

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

在此先感谢, 艾格。

回答

3

您可以用下面的方法来指定一个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" 

让我知道如果你需要更多的 - 祝你好运!

2

不,但您可以通过覆盖模型窗体中的字段来重新定义窗口小部件。

另一种方法是实施__init__方法并更改现有字段中的窗口小部件或attr。