Отобразите некоторый произвольный текст промежуточные поля Django Form

Я имею в виду, что вы должны хранить их ответы где-то, верно? Но если вы просто хотите, чтобы ответы были открытыми и хранили все, что они вводили снова и снова ...

var count = 0;
var groceryItems = [];
var food=true;
//get rid out the count<5 if you want the user to be allowed to enter food forever
 while (food && count<5) {
      count++
  
      food= prompt("Enter the grocery items (or Cancel to exit)","");
      if(food){
        var price=prompt("Enter the price (or Cancel to exit)","");
        groceryItems.push(food+" $"+price);
      }
}

//when you hit cancel all the entered items will be alerted.
alert(groceryItems.join(','));

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

12
задан Srikar Appalaraju 14 December 2012 в 10:10
поделиться

7 ответов

Помните также, что объект формы Django - это просто набор полей; нет необходимости в отношении 1: 1 между тегами формы HTML и объектами формы Django. Если различные разделы формы фактически логически разделены, вы можете разделить их на три формы, которые затем можно отобразить в своем шаблоне с любым HTML-кодом между ними (но все же внутри одного тега HTML-формы).

Является ли это разумным решением, во многом зависит от дизайна вашего приложения и, конечно же, от вида.

2
ответ дан 2 December 2019 в 05:04
поделиться

Даже при том, что Ваша форма заполняется от базы данных, необходимо все еще смочь вручную выписать форму или использовать шаблон. Проверьте документацию формы Django для получения дополнительной информации.

0
ответ дан 2 December 2019 в 05:04
поделиться

Так как каждый раздел является набором нескольких, независимых полей формы, я рекомендую использовать пользовательский шаблон формы. Это дает Вам абсолютный полный контроль над расположением с минимальной дополнительной работой. Настройка Django Шаблонные документы Формы имеет детали.

3
ответ дан 2 December 2019 в 05:04
поделиться

Если вы хотите настроить форму, вам не нужно ее отображать form.as_ul . Django знает, как отрендерить foobar, если вы правильно настроили модель форм ... попробуйте ... не беспокойтесь

Посмотрите, какой питон на сервере отправил вашу страницу. Например, если он отправил такую ​​форму django:

return response (request, user, 'templateName', {'myform': myform})

, тогда templateName.html будет иметь:

<blockquote>
<form>

    <p>Here you enter your personal data...</p>
    {{myform.firstname }}

    <p>Here you enter your education data...</p>
    {{myform.university }}

    <p> a choice field </p>
    {{myform.foobar}}

</form>
</blockquote>
10
ответ дан 2 December 2019 в 05:04
поделиться

Один из способов сделать это, не отображая вашу форму в шаблоне с помощью form.as_ul, - использовать django-uni-form. Сначала вам нужно загрузить его здесь и установить. Тогда код для настройки вашей формы может выглядеть примерно так:

from uni_form.helpers import FormHelper, Submit, Layout, Fieldset

class MyForm(Form):

    #personal data
    firstname = CharField()
    lastname = CharField()

    #education data
    university = CharField()
    major = CharField()

    #foobar data
    foobar = ChoiceField()

    # now attach a uni_form helper to display the form
    helper = FormHelper()

    # create the layout
    layout = Layout(
         # first fieldset
         Fieldset("Here you enter your personal data...",
             'firstname', 'lastname'),
         Fieldset("Here you enter your education data...",
             'university', 'major'),
         Fieldset('foobar')

    # and add a submit button
    sumbit = Submit('add', 'Submit information')
    helper.add_input(submit)

Теперь, чтобы отобразить это в вашем шаблоне, вы должны сделать это:

{% load uni_form %}
{% with form.helper as helper %}
    {% uni_form form helper %}
{% endwith %}

Это выведет HTML (примерно) следующим образом:

<form>
<fieldset><legend>Here you enter your personal data...</legend>
<input name='firstname'>
<input name='lastname'>
</fieldset>

<fieldset><legend>Here you enter your education data...</legend>
<input name='university'>
<input name='major'>
</fieldset>

<fieldset>
<input name='foobar'>
</fieldset>

</form>

Для получения дополнительной информации о uni_form, прочтите их документы (см. ссылку выше).

PS: Я понимаю, что этот ответ запоздал, и я уверен, что вы уже решили эту проблему, но я думаю, что это должно быть полезно для всех, кто только что столкнулся с этим сейчас.

15
ответ дан 2 December 2019 в 05:04
поделиться

Dreamweaver может сделать это

http://help.adobe.com/en_US/Dreamweaver/10.0_Using/WS8BC8A54F-60BC-40bd-A368-50A405C51350a.html

-121--3422749-

На некоторых платформах пришлось объявить последовательность литералы как static const char * , чтобы программа могла получить доступ к тексту из Read-Only Memory. При объявлении как const char * список сборки показал, что текст был скопирован из ПЗУ в переменную стека.

Вместо того чтобы беспокоиться о приемнике, попробуйте объявить последовательность литералы с помощью static const char * .

-121--2130555-

В известных формах имеется поле help _ text .

в forms.py:

  • myField = forms.myFieldType (help_text = «Помощь дружелюбному тексту вставить вашу форму», otherStuff=otherStuff)

в forms.html:

  • {{форма myField.help_text}}
1
ответ дан 2 December 2019 в 05:04
поделиться

Тем, кто попал в аналогичную ситуацию, как у автора, я рекомендую вернуться к CSS и псевдоселекторам : before и / или : after либо на input или label элементы формы. Они работают так же хорошо и могут значительно облегчить вашу жизнь, поскольку вы все еще можете использовать {{form.as_p}} .

0
ответ дан 2 December 2019 в 05:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: