@IvanOne

Как сделать выборку в django?

Django 1.8 есть две такие вот модели
class PassRoute(BaseRoute):
    route_num = models.CharField(u"Номер маршрута", max_length=10, null=True, blank=True)
    sum = models.DecimalField(u"Сумма", max_digits=10, decimal_places=2)
    people = models.PositiveIntegerField(u"Колличество человек", null=True, blank=True)
    info = models.CharField(u"Дополнительная информация", max_length=200, null=True, blank=True)
    permanent = models.BooleanField(u"Ежедневный маршрут", default=True)

    def __unicode__(self):
        return u"{} - {}".format(self.start_point.city.name, self.end_point.city.name)


class DateRoute(models.Model):
    DAYS_WEEK = (
        (1, u"Понедельник"),
        (2, u"Вторник"),
        (3, u"Среда"),
        (4, u"Четверг"),
        (5, u"Пятница"),
        (6, u"Суббота"),
        (7, u"Воскресение")
    )
    MONTH_NUM = ([(x, x) for x in range(1, 32)])

    date_start = models.DateField(u"Дата отправления", null=True, blank=True)
    date_month = models.PositiveIntegerField(u"День месяца", null=True, blank=True, choices=MONTH_NUM)
    week_num = models.PositiveSmallIntegerField(u"День недели", choices=DAYS_WEEK, null=True, blank=True)

    route = models.ForeignKey(PassRoute, verbose_name=u"Маршрут")

Вторая модель как бы создает расписание для первой, вопрос такой, как выбрать маршруты на определенный день, то есть я беру 22 число это четверг, соответсвенно я ищу все расписания попадающие в этот день как по дате так и по дню недели или по числу, и потом из них выбрать соответсвующие маршруты, но так же в выборке должны участвовать маршруты у которых поле permanent стоит в True, не могу понять как построить запрос через orm, что бы еще была возможность сортировки? Либо же юзать голый sql? бд Postgresql. Манипуляции с датой уже сделаны интересует только сам принцип построения такого запроса.
  • Вопрос задан
  • 252 просмотра
Пригласить эксперта
Ответы на вопрос 1
@deliro
Q
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы