Поле модели Django как поле формы в шаблонах - PullRequest
0 голосов
/ 10 февраля 2012

Полагаю, это простой вопрос, но я не могу найти однозначного ответа, возможно это или нет.

У меня есть объект Model, который передается моему шаблону во время рендеринга.Несмотря на то, что я использую большинство полей Model для отображения их значений, я столкнулся с необходимостью показать некоторые из них в виде полей формы (с соответствующими HTML-элементами, подобными отображаемым через ModelForms).Можно ли здесь избежать использования класса ModelForm и просто использовать поле модели для визуализации в виде поля формы непосредственно из шаблона?

пример:

class MyModel(models.Model):
    month = models.PositiveIntegerField(_('Month'), choices=MONTH_CHOICES)
    year = models.PositiveIntegerField(_('Year'))

Теперь в шаблоне на основе приведенного выше примера модели IХотите показать год как значение, но месяц как выпадающий список с выбранным текущим значением?

Любой указатель оценен!

Вариант использования:

Представьте общий список_вид, подобный случаю, когдавы рендерите набор запросов.У вас есть объект на итерацию, однако в представлении списка вы хотите, чтобы ваши пользователи могли быстро редактировать несколько атрибутов объекта, чтобы не заставлять их переходить в режим полного редактирования (возможно, через простой ajax).

1 Ответ

0 голосов
/ 10 февраля 2012

номер

Как видно из комментариев, это невозможно. Модель и ее поля не знают о формах - для этого существуют формы и модели.

Правильный способ сделать это - обернуть объекты модели формой модели, которую вы можете настроить (используя наследование), чтобы делать все, что вы хотите, с полями неформ, если вы хотите сделать это более прозрачным.

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

...