Комментарии 11
Я для добавления тегов раньше тоже много пользовался всякими django-taggit и django-tagging, но уже давно начал использовать djorm-ext-pgarray. Как пример использования для тегов:
а потом:
Удобное поле ввода с автокомплитом для этого сделал но без jquery-ui(как в вашем) а с использованием bootstrap tagmanager.
Кому интересно, тут еще есть полезные плюшки типа djorm-ext-pool, djorm-ext-hstore, djorm-ext-pgfulltext, djorm-ext-pggeom, djorm-ext-pgbytea и другие.
from django.db import models
from djorm_pgarray.fields import ArrayField
from djorm_expressions.models import ExpressionManager
class Post(models.Model):
title = models.CharField(max_length=255)
content = models.TextField()
tags = ArrayField(dbtype="varchar(255)")
objects = ExpressionManager()
а потом:
Post(title='Lorem Ipsum', content='Dolor sit amet', tags=['hello','world'])
post.save()
Удобное поле ввода с автокомплитом для этого сделал но без jquery-ui(как в вашем) а с использованием bootstrap tagmanager.
Кому интересно, тут еще есть полезные плюшки типа djorm-ext-pool, djorm-ext-hstore, djorm-ext-pgfulltext, djorm-ext-pggeom, djorm-ext-pgbytea и другие.
Ради одного этого комментария стоило писать статью :)
Спасибо за наводку! Обязательно посмотрю в ближайшее время ваши djorm-ext.
Спасибо за наводку! Обязательно посмотрю в ближайшее время ваши djorm-ext.
Не не, они не мои) Это товарищ Андрей Антух(Niwibe) из Мадрида постарался.
А оно индексы поддерживает. Postgresql то понятно что GIN и GiST поддерживает, а само расширение?
Тэги нам нужны для того, чтобы по ним можно было делать выборку необходимой информации, а не для того чтобы просто показать их внизу страницы. Проблема в том, что по элементам массива нельзя построить индекс, а значит выборки при большом объёме данных будут очень медленными. Вот цитата из документации:
Решение, конечно, элегантное, но не производительное.
Arrays are not sets; searching for specific array elements can be a sign of database misdesign. Consider using a separate table with a row for each item that would be an array element. This will be easier to search, and is likely to scale better for a large number of elements.
Решение, конечно, элегантное, но не производительное.
Раз рассказываете про батарейки, хоть про каждую пару слов скажите и что они делают
Интересно число — 5 :)
Спасибо за пост, особенно за django-bitfield :)
Спасибо за пост, особенно за django-bitfield :)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
5 полезных батареек для Django