Каков наилучший способ сериализации объекта ModelForm в Django? - PullRequest
1 голос
/ 15 декабря 2008

Я использую Django и Google Web Toolkit (GWT) для моего текущего проекта. Я хотел бы передать экземпляр ModelForm в GWT через Http-ответ, чтобы я мог «порезать» его и отобразить, как мне будет угодно. Моя цель - синхронизировать форму с изменениями в моем файле models.py, но при этом увеличить контроль над внешним видом формы. Однако классы django для сериализации, сериализаторов и simplejson не могут сериализовать ModelForm. Ни один не может cPickle. Каковы мои альтернативы?

Ответы [ 2 ]

1 голос
/ 17 декабря 2008

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

{% for field in form.fields %}
    <div class="form-field">{{ field }}</div>
{% endfor %}

Это также дает вам возможность выполнять условные проверки, используя блоки {% if%} внутри цикла, если вы хотите исключить определенные поля.

0 голосов
/ 16 декабря 2008

Если ваша проблема состоит в том, чтобы просто сериализовать ModelForm в json, просто напишите свой собственный подкласс сериализатора simplejson.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...