
Не успел, я починить PickleField
для Django, мне понадобилось создать JSONField
. Задача оказалась решенной на раз/два, плюс ко всему добавился маленький и полезный виджет для JSONField
'а, который показывает красиво отформатированный JSON в textarea
. Сразу скажу, что contribute_to_class
метод чуть менне, чем полностью, скопипастен с снипетта 377.
from django.conf import settings from django.forms.widgets import Textarea from django.db.models import SubfieldBase, TextField from django.utils import simplejson class JSONField(TextField): __metaclass__ = SubfieldBase def contribute_to_class(self, cls, name): super(JSONField, self).contribute_to_class(cls, name) def get_json(model): return self.get_db_prep_value(getattr(model, self.attname))
По моему скромному мнению, сейчас найти правильный сниппет, показывающий как реализовать автозаполнение на том или ином языке программирования с использованием того или иного JavaScript фреймворка - пустяковое дело.
Так что будем считать, что сегодня просто сама по себе настала очередь связки jQuery + Django. Реализация виджета автозаполнения в этой связке - проста до ужаса. Особенно, когда используется великолепный jQuery Autocomplete plugin.
Вся идея реализации состоит в следующем:
Но чтобы потом в дальнейшем по сто раз не дописывать этот виджет я чуточку его модифицировал.
В предыдущем посте я упомянул о виджете для выбора даты в Django. И все вроде бы хорошо, но этот виджет становится совершенно бесполезным, когда надо:
И потому для этих случаев я смастерил очередной велосипед свой виджет, который устраняет все эти недостатки. Посмотреть как он работает можно здесь (поля Дата рождения, Год поступления, Год окончания, Период работы с, по).
Уже интересно?
Тогда получайте сам виджет:
import datetime, re from time import strptime from django.newform
Публикации русскоязычной python-блогосферы с меткой widgets Здесь вы можете посмотреть список блогов, по которым производится мониторинг новых публикаций. Если вы хотите добавить новый блог, пожалуйста, заполните форму.