Django adiciona classe ao formulário <input ..> field

Estamos procurando uma solução para adicionar um atributo de classe CSS ao @ango de um formulário do Djan<input..> campo. Vimos o conselho que sugere agrupar o campo em um<div> http: //docs.djangoproject.com/en/1.2/topics/forms/#customizing-the-form-templat, mas este conselho parece se aplicar principalmente a um rótulo de campos, não é<input ...>.

Este conselho específico não funciona se você estiver tentando criar uma borda ao redor do<input> campo. Nesse caso, o<div> será aplicado à caixa delimitadora, e não ao campo de entrada real. Por exemplo.wrapper { border: 1px solid #666;line-height:22px;height:22px;padding:3px 5px;width:205px;} criará uma caixa ao redor do campo, em vez de substituir o @ padr<input ...> fronteira

Voltamos a aplicar a classe através de um widget aplicado à classe Form, mas isso carece de uma certa quantidade de elegância do código (e viola DRY). Por exemplo, isso resolve a necessidad

class ContactUsForm(forms.Form):
    name = forms.CharField(widget=forms.TextInput(attrs={'class':'form_text'}))

Mas é claro, isso vincula o formulário muito ao CSS. E fica ainda mais complexo se você estiver tentando aplicar atributos de classe a<input ..> se o formulário for baseado no novo sistema legal forms.ModelFor

Passamos a maior parte de dois dias brincando com esse problema (e estudando o código-fonte do Django), e parece que podemos estar alcançando as extremidades mais distantes do Django para esse problema em particular - mas queríamos apenas fazer um. passe no StackOverflow para ver se mais alguém teve uma idei

Obrigado por qualquer insight.

Um comentário final: sinta-se à vontade para esclarecer isso se o problema for o nosso entendimento do CSS (em vez do django). Passamos bastante tempo mexendo nas opções de CSS, mas nenhuma delas parece nos permitir alcançar o efeito desejado - que é substituir o padrão<input...> fronteira

questionAnswers(1)

yourAnswerToTheQuestion