Форум сайта python.su
0
Читаю DjangoBook, дошел до использования filter_horizontal. В общем http://s47.radikal.ru/i118/1001/5c/ca749c71f384.png – что получается когда строчка с этим фильтром закомментирована (поле “Автор”). А http://s50.radikal.ru/i127/1001/de/f57debc7ded9.png – когда включаю эту строчку в код. Пока гуглил на эту тему, часто встречал подобные вопросы но решения так и не нашел.
admin.py
from django.contrib import admin
from mysite.books.models import Author, Book, Publisher
class AuthorAdmin(admin.ModelAdmin):
list_display = ('first_name', 'last_name', 'email',)
search_fields = ('first_name', 'last_name',)
class BookAdmin(admin.ModelAdmin):
list_display = ('title', 'publisher', 'publication_date',)
list_filter = ('publication_date',)
date_hierarchy = 'publication_date'
ordering = ('-publication_date',)
# fields = ('title', 'authors', 'publisher',)
filter_horizontal = ('authors',)
admin.site.register(Author, AuthorAdmin)
admin.site.register(Book, BookAdmin)
admin.site.register(Publisher)
# -*- encoding: utf-8 -*-
from django.db import models
class Publisher(models.Model):
name = models.CharField("Компаания", max_length=30)
address = models.CharField("Адрес", max_length=50)
city = models.CharField("город", max_length=60)
state_province = models.CharField("область", max_length=30)
country = models.CharField("страна", max_length=50)
website = models.URLField("WEB сайт")
def __unicode__(self):
return self.name
class Meta:
ordering = ["name"]
class Author(models.Model):
salutation = models.CharField("обращение", max_length=10)
first_name = models.CharField("имя", max_length=30)
last_name = models.CharField("фамилия", max_length=40)
email = models.EmailField("e-mail", blank=True)
headshot = models.ImageField("фото", upload_to="/tmp",blank=True)
def __unicode__(self):
return "%s %s" % (self.first_name, self.last_name,)
class Meta:
ordering = ["first_name", "last_name",]
class Book(models.Model):
title = models.CharField("название", max_length=100)
authors = models.ManyToManyField(Author, verbose_name="автор(ы)")
publisher = models.ForeignKey(Publisher, verbose_name="издатель")
publication_date = models.DateField("дата публикации", blank=True, null=True)
def __unicode__(self):
return self.title
class Meta:
ordering = ["title"]
Отредактировано (Янв. 2, 2010 13:56:06)
Офлайн
0
В общем разобрался методом научного тыка.
Почему то для поля ManyToManyField, несмотря на “encoding: utf-8”, verbose_name должна быть юникодовой строкой: “verbose_name=u'автор(ы)'”. А для остальных типов полей можно обойтись без этого.
Баг? Или я в доках что-то проглядел?
Офлайн
0
SyaoВ каком смысле? Можно использовать русский текст в 1251 файле в неюникодных переменных, когда всё вокруг в UTF и юникоде? Не верю :)
для остальных типов полей можно обойтись без этого
Отредактировано (Янв. 5, 2010 10:34:57)
Офлайн
0
Про кодировку файла я действительно не к месту ляпнул.
Но по существу, речь о u“” и “”.
Офлайн
0
Syao
Спасибо, чувак! добавил u перед значением verbose_name и javascript появился!
Офлайн