2013-12-24 3 views
1

Я хорошо знаю, что соответствующие вопросы были подняты на SO раньше, но я до сих пор находят их недостаточно, чтобы решить следующую задачу -Настройка Django полей формы

нужно построить форму, используя django.forms .FORM со всеми метками полей правой выровнены.

что в настоящее время происходит либо этикетки получить выровнен по центру или выбор приходят под этикетками, как показано ниже:

Понравилась еда?

  • Великий
  • Хорошо
  • Bad

То, что я хочу

Liked the food: 

       o Great 
       o Okay 
       o Bad 
      Dish: 
     Beverage: 
Membership ID*: 

Большинство виджетов настройки, кажется, не влияет на расстановку поле LABEL

Update [после adityasdarma1 answ er]

Я всегда могу пропустить формы django и написать все в HTML , но я хочу как можно меньше закодировать код HTML при достижении желаемого выравнивания.

Я ожидал, что django позволит мне установить такое выравнивание на глобальном уровне.

Если бы я мог получить доступ к метке описания и элементу ввода ввода и управлять форматом в HTML, даже это нормально.

Ближайшее, что я пришел, следующее. Кто-нибудь может предложить мне, какие изменения в коде ниже необходимы для выравнивания ярлыков.

{% for field in form %} 
    <div> 
    <label for="{{ field.label }}">{{ field.label_tag }} 
    {% if field.field.required %}<span class="special_class">*</span>{% endif %}</label> 

    {{ field }} 
    </div> 
{% endfor %} 
+0

Самый быстрый способ исправить компоновку одной формы - это действительно ручной html, но если вы хотите более систематический подход к настройке всех ваших форм, вы должны окончательно взглянуть на [ хрустящие формы] (http://django-crispy-forms.readthedocs.org/en/latest/) – vincent

ответ

1

Использование тр и тд сделал трюк (фрагмент кода совместно ниже)

<table > 
    {% for field in form %} 
    <tbody> 
    <tr> 
     <td> 
     <label for="{{ field.label }}" style="display:inline-block;vertical-align:middle">{{ field.label_tag }}</label> 
     </td> 
     <td> 
     {{ field }} 
     </td> 
    </tr> 
    {% endfor %} 
    </tbody> 
    </table> 
3

Вы должны визуализировать форму вручную и дать соответствующие классы. Читать documentation

+0

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

+0

Измените '{{field.label_tag}}' на '{{field.label}}' и в атрибуте 'for', измените его на' {{field.auto_id}} ' – adityasdarma1

+0

Обновленная ссылка для документов Django: https://docs.djangoproject.com/en/1.6/topics/forms/#customizing-the-form-template –

0

Django предлагает несколько опций для настройки макета формы. Ознакомьтесь с официальной документацией Django по адресу rendering forms manually и с помощью form templates

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