Как увеличить размер поля ввода текста администратора django-taggit?

Согласно заголовку, как мне сообщить интерфейсу администратора (admin.py) использовать нестандартный размер для поля тегов моей модели, которая использует django-taggit:

tags = TaggableManager()

Спасибо


person Deep    schedule 25.06.2014    source источник


Ответы (1)


Вопрос, аналогичный Django Admin - переопределение виджета пользовательского поля формы.

Однако вам потребуется переопределить любые admin.widgets, например AdminTextareaWidget, чтобы теги отображались правильно. В противном случае значение поля формы будет отображаться как

[<TaggedItem: Product object tagged with bar>, 
<TaggedItem: Product object tagged with foo>, 
<TaggedItem: Product object tagged with baz>]

Пример кода для иллюстрации этого.

#forms.py

from django import forms
from django.contrib.admin.widgets import AdminTextareaWidget
from django.utils import six

from models import Product

from taggit.utils import edit_string_for_tags


class TaggitAdminTextareaWidget(AdminTextareaWidget):
    # taken from taggit.forms.TagWidget
    def render(self, name, value, attrs=None):
        if value is not None and not isinstance(value, six.string_types):
            value = edit_string_for_tags([o.tag for o in value.select_related("tag")])
        return super(TaggitAdminTextareaWidget, self).render(name, value, attrs)


class ProductAdminForm(forms.ModelForm):
    class Meta:
        model = Product
        widgets = {
            'tags': TaggitAdminTextareaWidget
        }
person KianMeng Ang    schedule 18.08.2014