Define css class in django Forms

前端 未结 13 804
南旧
南旧 2020-11-27 10:11

Assume I have a form

class SampleClass(forms.Form):
    name = forms.CharField(max_length=30)
    age = forms.IntegerField()
    django_hacker = forms.Boolea         


        
13条回答
  •  情歌与酒
    2020-11-27 10:37

    As it turns out you can do this in form constructor (init function) or after form class was initiated. This is sometimes required if you are not writing your own form and that form is coming from somewhere else -

    def some_view(request):
        add_css_to_fields = ['list','of','fields']
        if request.method == 'POST':
            form = SomeForm(request.POST)
            if form.is_valid():
                return HttpResponseRedirect('/thanks/')
        else:
            form = SomeForm()
    
        for key in form.fields.keys():
            if key in add_css_to_fields:
                field = form.fields[key]
                css_addition = 'css_addition '
                css = field.widget.attrs.get('class', '')
                field.widget.attrs['class'] = css_addition + css_classes
    
        return render(request, 'template_name.html', {'form': form})
    

提交回复
热议问题