Как передать значение в Django-Modelform в InputHidden IntegerField, даже не нарушая видимое поле в шаблоне - PullRequest
0 голосов
/ 28 февраля 2012

Я создал модель Django с тремя полями, в которых одно из них скрыто, а остальные видимы

1.CharField
2.IntegerField (Hidden Field)
3.DateTimeField

Я сделал это скрытым, используя следующий код:

class HostCreateForm(forms.ModelForm):
    class Meta:
        model = Host
        widgets = {
            'Zone_Vale': forms.HiddenInput()
          }

Чтобы просмотреть эту форму, я использую следующий код в моем шаблоне:

<form action="" method="POST">
    {{ form.as_p }}
    <input type="submit" value="{% trans "Add host" %}" />

Все хорошо, но я также хочу передать переменную в этот входной скрытый слой.Я не понимаю, как это сделать.Я попытался сделать, настроив шаблон (см. Эту ссылку :) https://docs.djangoproject.com/en/dev/topics/forms/ `Например, {{form.as_p}} вернет форму, содержащую два видимых поля и данные в них: (что пользователь ввелэто) и скрытое поле.Итак, я хочу передать переменную этому скрытому полю из файла template.html

Это также не работает.Нужна ваша помощь

Ответы [ 2 ]

1 голос
/ 28 февраля 2012

Если вы чувствуете себя грязным, быстрое решение - заполнить это поле с помощью javascript. Правильный путь должен использовать «начальный» параметр при создании экземпляра объекта формы в view.py

Ссылка: https://docs.djangoproject.com/en/1.3/ref/forms/api/#django.forms.Form.initial

Даже будучи очень грязным , некоторые javascript-решения, подобные этой, тоже работают: (используя jQuery. Адаптируйся под свои нужды)

<script type="text/javascript">
    $(document).ready(function(){
        $('form input[name$="Zone_Vale"]').val(DESIRED_HIDDEN_VALUE)
    })
</script>

Но не гордитесь тем, что делаете это.

1 голос
/ 28 февраля 2012

Вы не сможете передать переменную в поле на уровне шаблона, учитывая, как вы отображаете шаблон.

Если вам действительно необходимо передать переменную в форму на уровне шаблона, я бы предложил создать тег шаблона, который будет:

  1. Разрешить вашу переменную из контекста запроса
  2. Создание экземпляра класса формы с использованием переменной как части начальных данных для формы
  3. Добавить форму в контекст для визуализации
...