Question

I try to use Crispy forms for ModelForm in Django. However, I need custom HTML code for all fields. Here is sample field code generated by crispy forms:

<div class="span12 field-box">
    <div id="div_id_user" class="control-group">
        <label for="id_user" class="control-label requiredField">
            User select
            <span class="asteriskField">*</span>
            </label>
        <div class="controls">
            <select id="id_user" class="select" name="user">
                <option value="" selected="selected">---------</option>
                <option value="1">User 1</option>
                <option value="2">User 2</option>
            </select>
        </div>
    </div>
</div>

but I would need code generated like:

<div class="span12 field-box">
    <label>User:</label>
    <div class="ui-select span5">
        <select>
            <option value="1">User 1</option>
            <option value="2">User 2</option>
        </select>
    </div>
</div>

I think it would be enough if I will be able to just add custom class to div.controls - But I have no idea how to achieve that.

Here is crispy form code:

self.helper.layout = Layout(
            Div(
                Field('user'),

                css_class="span12 field-box",
            ),
        )
Was it helpful?

Solution

How about setting a class in field layout object:

Field('user', css_class='span5')
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top