1

Я хочу отформатировать модели модели с помощью бутстрапа и без каких-либо дополнительных пакетов (просто используя исходные файлы начальной загрузки). Конкретная форма, которую я хочу сконфигурировано:модель модели django с bootstrap

class FoodForm(forms.ModelForm): 

    class Meta: 
     model = Food 
     fields = ['name', 'company'] 
     exclude = ('user', 'edit') 

«Имя» текстовое поле я хочу быть самозагрузки текстовое поле, и «компания» является полем выбора (от внешнего ключа), что я 'd хотите, чтобы выпадало из бутстрапа.

Текущая настройка шаблона формы:

{% extends "mainsite/base.html" %} 

    {% block content %} 

    <form method="POST" class="post-form">{% csrf_token %} 
     {{ form.as_p }} 
     <button type="submit" class="btn btn-primary">Save</button> 
</form> 
    </form> 

    {% endblock %} 

Что лучшая практика для форматирования любого Джанго ModelForm поля в загрузчике?

+0

Возможный дубликат [Как добавить атрибуты класса, id, placeholder в поле в формах модели django] (http://stackoverflow.com/questions/19489699/how-to-add-class-id-placeholder-attributes -to-a-field-in-django-model-forms) – rnevius

+0

Почему бы не использовать хрустящие формы? Я знаю, что вы упомянули, что хотите использовать ванильный бутстрап, но это кажется ненужным, так как хрустящие формы довольно легкие. – miki725

ответ

8

Уловка для загрузочных полей вводит класс form-control в каждое поле и удостоверяется, что каждое поле находится внутри элемента form-group dom. Для того, чтобы придать этот класс в каждом из своих полей, вы можете так что-то вроде:

class FoodForm(forms.ModelForm): 
    def __init__(self, *args, **kwargs): 
     super(FoodForm, self).__init__(*args, **kwargs) 
     for field in iter(self.fields): 
      self.fields[field].widget.attrs.update({ 
       'class': 'form-control' 
     }) 

Теперь в шаблоне Джанго вы можете перебирать ваши поля формы, помещая каждый в bootstrap'd form-group. Например:

<form method="POST" class="post-form"> 
    {% for field in form %} 
    <div class="form-group"> 
     {{ field }} 
    </div> 
    {% endfor %} 
</form> 

Я также сказать, что эта установка (Django + Bootstrap) супер распространенная в настоящее время adays, так прибегая к помощи «Bootstrap форме с Джанго» должен принести богатство знаний о настройке этого еще больше. Удачи!

Смежные вопросы