2013-12-15 34 views
0

我需要一個CSS類分配給窗體域,我指的是這個SO後的ModelForm: CSS styling in Django formsDjango的:CSS類不顯示擴展另一個的ModelForm

但是,我無法得到它使用擴展另一個ModelForm的ModelForm。 在下面的代碼中,字段「title」和「base_title」預計分別具有類「title」和「base_title」,但是,當您檢查HTML時,它們都不會獲得任何類。任何意見,將不勝感激。謝謝。

這裏是我的代碼:

models.py:

from django.db import models 

class BaseModel(models.Model): 
    base_title = models.CharField(max_length=50, blank=True) 


class MyModel(BaseModel): 
    title = models.CharField(max_length=50, blank=True) 

forms.py:

from django.forms import ModelForm, TextInput 
from testproj.models import MyModel 

class BaseModelForm(ModelForm): 

    class Meta: 
     model = MyModel 
    fields = ("base_title",) 
    widgets = { 
     "base_title" : TextInput(attrs={"class" : "base_title"}), 
    } 

class MyModelForm(BaseModelForm): 

    class Meta(BaseModelForm.Meta): 
     model = MyModel 
     fields = BaseModelForm.Meta.fields + ("title",) 
     widgets = BaseModelForm.Meta.widgets.update({ 
      "title" : TextInput(attrs={"class" : "title"}), 
     }) 

views.py:

from django.shortcuts import render_to_response 
from django.template import RequestContext 

from testproj.forms import MyModelForm 

def index(request): 

    form = MyModelForm() 

    return render_to_response(
     "testproj/index.html", 
     { 
      "form": form, 
     }, 
      context_instance=RequestContext(request) 
    ) 

回答

0

發現了什麼的問題是:更新小部件di不正確ctionary。 MyModelForm類應顯示如下:

class MyModelForm(BaseModelForm): 
    class Meta(BaseModelForm.Meta): 
     model = MyModel 
     fields = BaseModelForm.Meta.fields + ("title",) 
     widgets = BaseModelForm.Meta.widgets 
     widgets.update({ 
     "title" : TextInput(attrs={"class" : "title"}), 
})