1. pkolt

    05.03.2010

    0 ↑
    0 ↓
    Есть две модели... Как в админке отсортировать Article по journal.year
    или как альтернатива можно ли написать свой ordering?
    class Journal(models.Model):
    """
    Журналы
    """
    CHOICES_MONTH = enumerate(
    (
    u"январь",
    u"февраль",
    u"март",
    u"апрель",
    u"май",
    u"июнь",
    u"июль",
    u"август",
    u"сентябрь",
    u"октябрь",
    u"ноябрь",
    u"декабрь",
    )
    )

    publish = models.BooleanField(verbose_name=u"Опубликовать", default=False)
    year = models.PositiveIntegerField(verbose_name=u"Год выпуска", default=date.today().year)
    month = models.PositiveIntegerField(verbose_name=u"Месяц", choices=CHOICES_MONTH)

    class Article(models.Model):
    """
    Статьи журнала
    """
    journal = models.ForeignKey(Journal, verbose_name=u"Журнал")
    rubric = models.ForeignKey(Rubric, verbose_name=u"Рубрика")
    authors = models.ManyToManyField(Authors, verbose_name=u"Авторы", blank=True)
    keywords = models.ManyToManyField(Keywords, verbose_name=u"Ключевые слова", blank=True)
    title = models.CharField(verbose_name=u"Заголовок", max_length=250)
    udk = models.CharField(verbose_name=u"УДК", max_length=10, blank=True)
    bbk = models.CharField(verbose_name=u"ББК", max_length=10, blank=True)
    annotation = CKEditorField(verbose_name=u"Аннотация", blank=True)
    text = CKEditorField(verbose_name=u"Текст")
    bibliography = CKEditorField(verbose_name=u"Библиография", blank=True)

    title_en = models.CharField(verbose_name=u"Заголовок (En)", max_length=250, blank=True)
    annotation_en = CKEditorField(verbose_name=u"Аннотация (En)", blank=True)
    bibliography_en = CKEditorField(verbose_name=u"Библиография (En)", blank=True)

    order = PositionField(verbose_name=u"Порядок")
  2. Fulcrum

    05.03.2010

    0 ↑
    0 ↓
    ordering = ['journal__year']
  3. pkolt

    05.03.2010

    0 ↑
    0 ↓
    А вы уверены что это работает..? я вначале так и подумал что нужно просто использовать модель__модель, но что-то без результатно...

    В доках кстати ни слова про модель__модель в ordering...
  4. igorekk

    05.03.2010

    0 ↑
    0 ↓
    pkolt, проверить не получается?
  5. pkolt

    05.03.2010

    0 ↑
    0 ↓
    Ну у меня сортировка была такая ordering = ['order', 'journal__year']
    Article выстраивались по order... но по идее если бы journal__year отработал, они бы упорядочились по годам.

    Вы сами используете нотацию ordering = ['модель_модель',] в admin.py? у вас она работает?
  6. igorekk

    05.03.2010

    0 ↑
    0 ↓
    Насколько я помню,
    __year
    это зарезервированный Django'й lookup. Быть может проблема как раз из-за этого?

    PS. Сортировка по model__field работает.
  7. pkolt

    05.03.2010

    0 ↑
    1 ↓
    Хм... хорошо я проверю... публиковали бы еще они список своих зарезервированных слов, где-нибудь на сайте.
  8. igorekk

    05.03.2010

    0 ↑
    0 ↓
    Всё есть в исходниках :)
  9. Иван Сагалаев

    07.03.2010

    0 ↑
    0 ↓

    публиковали бы еще они список своих зарезервированных слов, где-нибудь на сайте.

    http://docs.djangoproject.com/en/dev/ref/models/querysets/#id7

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.