Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 8, 2012 18:58:18

py
От:
Зарегистрирован: 2011-02-27
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

Пара вопросов (Django ORM или SQLAlchemy)

Добрый день!

Имеется:

class Parent():
	...
	
class Child():
    parent = models.ForeignKey(Parent)
    count = models.Charfield(choices=((1, 1), (2, 2), (3, 3)))
    created = models.DateTimeField()

1. Помогите выбрать те Parent, count последнего (по id или по created) Child которого == 1.

2. Необходимо добавить аттрибут (например last_child) у Parent, который бы без дополнительного запроса возвращал последний (по id или дате created) объект Child.

Вариант ниже, разумеется, не подходит:
@property
def last_child(self): return self.child_set.all().order_by('-id')[0]

Пригодится любое решение - на Django ORM или SQLAlchemy. Заранее спасибо!



Отредактировано py (Авг. 8, 2012 19:02:41)

Офлайн

#2 Авг. 8, 2012 19:57:02

adw0rd
От: Санкт-Петербург
Зарегистрирован: 2012-07-28
Сообщения: 107
Репутация: +  8  -
Профиль   Отправить e-mail  

Пара вопросов (Django ORM или SQLAlchemy)

self.child_set.all().order_by('-id')[0]

  • это делается через latest

self.child_set.latest()

А зачем вам две модели? Ведь обчно делается так:

class Something(models.Model):

   parent = models.ForeignKey('self', null=True, blank=True, related_name="childs")




Python, Django, Flask, Git, Emacs, Nginx, MySQL, SphinxSearch, Redis, Linux, FreeBSD
Мой блог, я на GitHub

Отредактировано adw0rd (Авг. 8, 2012 19:58:46)

Офлайн

#3 Авг. 9, 2012 00:14:21

py
От:
Зарегистрирован: 2011-02-27
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

Пара вопросов (Django ORM или SQLAlchemy)


adw0rd
А зачем вам две модели? Ведь обчно делается так:
К сожалению, такой вариант мне не подходит. Однако спасибо - про метод latest() даже не знал!



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version