Вопросы с тегами [django-queryset]

1

голосов
1

ответ
484

Просмотры

Django QuerySet.union() -or- QuerySet.raw() to Achieve Case-Insensitive Mutli-Search

Учитывая URL, как это: HTTP: //..../search/ Foo = а & Foo = B & бар = все, на мой взгляд, я хочу, чтобы фильтровать QuerySet для CASE-INSENSITIVE матчей "Foo". Там очень удобно «в» оператора, который я мог бы использовать в моем списке «Foo», но он не поддерживает прецедентное нечувствительность. Чтобы было ясно, это (элегантный код) выполняет регистрозависимой матч. (Это не соответствует «Foo = Ь».) Я не хочу, чтобы это: QuerySet = queryset.filter (foo__in = роль) # чувствителен к регистру Мое решение создать список QuerySets, по одному для каждого «Foo» матч , а затем создать вернуть окончательный «союз ()» результатов. Защиту get_queryset (я, ** kwargs): QuerySet = супер (PeopleListView, самость) .get_queryset () Foo = self.request.GET.getlist ( 'Foo'), если (Len (Foo) == 1): QuerySet = QuerySet , фильтр (foo__iexact = роль [0]) # чувствительны к регистру Элиф (LEN (Foo)> 1): qs_list = [] для _foo в Foo: qs_list.append (queryset.filter (foo__iexact = _foo)) QuerySet = Person.objects .none () # EmptyQuerySet для QS в qs_list: QuerySet = queryset.union (СМО) бар = self.request.GET.get ( 'бар'), если бар не является None: QuerySet = queryset.filter (bar__iexact = бар) # Easy Это приводит к ошибке: django.db.utils.DatabaseError: ORDER BY не допускается в подзапросах составных высказываний. Есть ли способ сделать это с «Q» объекты? Если нет, то я думаю, что «правильное» решение предполагает преобразование модели матча к нижнему регистру, а затем с помощью QuerySet :: сырца () для преобразования значения базы данных 'к нижнему регистру, а также. Я немного над моей головой там ... Спасибо за вашу помощь!
Lance E.T. Compte
1

голосов
0

ответ
65

Просмотры

Как напечатать в шаблоне что-то, когда QuerySet строить с профсоюзными (изменения)?

У меня есть два QuerySet: q1 и q2. Я делаю объединение их с q1.union (q2) Теперь, когда я печатаю в шаблоне в QuerySet с для цикла, как я могу напечатать что-то между этими двумя querysets? Что-то вроде: Рекомендуемые результатов (q1 forloop) Другие результатов (q2 forloop) Почему я думал использовать союз вместо разделенного querysets? Потому что я хочу только одну нумерацию страниц для обоих Спасибо
user1518217
1

голосов
0

ответ
104

Просмотры

Left join in Django model query?

Я хочу использовать левое соединение в MySQL Query в Джанго модели запроса. МОЯ MySQL запрос, который я хочу использовать это: выберите U.id, B.id в boardId, граф (BJ.id) как countBoardMember, граф (NM.id) как newsCountInBaord от пользователей, так как U осталось присоединиться доски, как B на B. = идентификатор пользователя U.id влево присоединиться к board_join, как BJ на B.id = BJ.boardId влево присоединиться к news_mappings как NM на NM.boardId = B.id, где B.isArchived = ложная группа по B.id имеющей countBoardMember <10 и <5 newsCountInBaord ограничение 10 Но что Django модель запроса делает это с помощью левого внешнего соединения, а затем внутреннее соединение: SELECT `users`.`id`, COUNT (` board_join`.`joinedBy`) AS `countBoardMember`, COUNT (` news_mappings`.` id`) КАК `` newsCountInBaord` ОТ users` LEFT OUTER JOIN `boards` ПО (` `users`.`id` = boards`.`userId`) LEFT OUTER JOIN` board_join` ON ( `boards`.`id` = `board_join`. `BoardId`) LEFT OUTER JOIN` news_mappings` ПО ( `` boards`.`id` = news_mappings`.`boardId`) INNER JOIN `boards` T6 ON (` users`.`id` = T6.`userId`) INNER JOIN `board_join` Т7 ON (T6.`id` = T7.`boardId`) WHERE (T7.`requestStatus` = утвержденную И T6.`isArchived` = False) GROUP BY` users`.`id` HAVING COUNT ( ( `board_join`.`joinedBy`)> 10 и сосчитать (` news_mappings`.`id`)> 5) ORDER BY NULL предела 10; Это занимает гораздо больше времени, для того чтобы достигнуть мой результат. Моя Джанго модель запрос заключается в следующем: user_ids = (Users.objects.using ( 'К') .annotate (countBoardMember = Count ( 'boards__boardjoin__joinedBy'), newsCountInBaord = Count ( 'boards__newsmappings__id')) .filter (boards__isArchived = 0, boards__boardjoin__requestStatus = 'утвержден', countBoardMember__gt = 10, newsCountInBaord__gt = 5).
Abi Waqas
1

голосов
2

ответ
645

Просмотры

Django - DRF Delete/Retrieve/Patch Returns 404 { detail: “Not found” }

After intensive debugging for about 4-5 hours. I give up trying to find what's causing this, probably really simple, bug. Tried this with Update and Patch/Put Mixins, and didn't work as well. It is 100% because of the queryset, but I can't find the problem? Tried using .get() and everything else I could think of. My View is pretty straightforward: class RemoveModel3D(generics.DestroyAPIView): serializer_class = Model3DSerializer def get_queryset(self): user_pk = self.kwargs["pk"] return Model3D.objects.filter(owners__in=[user_pk]) P.S. That queryset is working perfectly fine with ListModelMixin. I read that List is for collections and Retrieve/Destroy/Update is for single model instance, but How do I get the queryset to be a single model instance? That I could not find anywhere EDIT: Adding serializer and model snippets related to the issue Serializers: class Model3DSerializer(serializers.ModelSerializer): User = get_user_model() commits = CommitSerializer(many=True, required=False, read_only=True) favorited_by = UserSerializer(many=True, required=False, read_only=True) date_uploaded = serializers.DateTimeField(read_only=True) owners = serializers.PrimaryKeyRelatedField(many=True, read_only=True) class Meta: model = Model3D fields = ( 'id', 'title', 'owners', 'description', 'date_uploaded', 'favorited_by', 'commits' ) Model: class Model3D(models.Model): title = models.CharField(max_length=64) # Many models many owners, seems reasonable to me owners = models.ManyToManyField(User, related_name='owners') description = models.TextField(null=True) date_uploaded = models.DateTimeField(auto_now_add=True) # Many models many people who like them. favorited_by = models.ManyToManyField(User, related_name='favorited_by') Views: class ListAllModels3D(generics.ListAPIView): serializer_class = Model3DSerializer def get_queryset(self): queryset = Model3D.objects.all() model_id = self.request.query_params.get('id', None) if model_id is not None: queryset = queryset.filter(pk=model_id) return queryset class RemoveModel3D(generics.DestroyAPIView): serializer_class = Model3DSerializer def get_queryset(self): queryset = Model3D.objects.all() model_id = self.request.query_params.get('id', None) if model_id is not None: queryset = queryset.filter(pk=model_id) return queryset class Models3D( mixins.ListModelMixin, mixins.CreateModelMixin, generics.GenericAPIView, ): serializer_class = Model3DSerializer def get_queryset(self): user_pk = self.kwargs["pk"] return Model3D.objects.filter(owners__in=[user_pk]) def get(self, request, *args, **kwargs): return self.list(request, *args, **kwargs) def post(self, request, *args, **kwargs): return self.create(request, *args, **kwargs) def perform_create(self, serializer): # FIXME: this is a bad way to set the value, but ... user_id = self.kwargs["pk"] serializer.validated_data['owners'] = [user_id] serializer.save()
Viktor Velev
1

голосов
1

ответ
630

Просмотры

все: не удалось получить магнезии для

Я использую Python3.6 и Джанго 2.0.2 и разработка веб-сайта для поиска пользователя в PyCharm. Я хочу использовать устаревшую базу данных, вызываемые пользователь, и были сохранены данные автоматически из другого источника, не изменят базу данных во время взаимодействия веб-сайта. Во-первых, я настроить базу данных в settings.py следующим образом: БАЗ = { 'по умолчанию': { 'МОТОР': 'django.db.backends.sqlite3', 'NAME': os.path.join (base_dir, «дб. sqlite3 ')}, 'legacy_db': { 'МОТОР': 'django.db.backends.mysql', 'NAME': 'имя', 'USER': 'пользователь', 'PASSWORD': 'проход',' HOST ': „хозяин“, „PORT“: „3306“,}} Затем я использую инспектировать БД для создания файла модели, команда выглядит следующим образом: питон управления. ру inspectdb --database legacy_db> models.py и сгенерированный models.py выглядит следующим образом: от django.db импортных моделей класса пользователя (models.Model): имя пользователя = models.CharField (max_length = 16) электронной почты = models.CharField ( max_length = 255, пусто = True, нуль = True) пароль = models.CharField (max_length = 32) create_time = models.DateTimeField (пустой = True, нуль = True) ID = models.IntegerField (primary_key = True) Защита __str __ (самообеспечение ): возвращение self.username класс Meta: подчиненному = False db_table = «пользователь» После этого я использовал makemigrations APPNAME и мигрируют APPNAME перенести базу данных. Тогда я называю модель в моем views.py следующим образом: все = User.objects.all () Я не знаю, как получить отслеживающий, я могу видеть только информацию об ошибке в режиме отладки, ошибка показывает, как вся : не в состоянии получить магнезии для рядом с кодом. Я действительно искал в Google и StackOverflow, но не получил никакой удачи. Я новичок в Джанго, и это мой первый раз, когда создание сайта Джанго на моей (я шел по ступенькам через из примера веб-сайта (опросы) в Джанго учебники). Таким образом, любая помощь будет очень ценна.
tina
1

голосов
0

ответ
111

Просмотры

Django create a subtable

) Проблема заключается в том, что этот запросе объединить все таблицы вместе, чтобы для каждого PersonSession может быть, мы имеем много GameSession и результирующая таблица содержит повторяющееся строку лица сессии, которая вызывает время человека сессий суммирует вместе неоднократно и генерирует неверный результат. В SQL-запросе я должен сначала построить подтаблицы с суммой игровых socres, а затем присоединиться к этой таблице с сессией человека, но я не знаю, как это возможно, может в Джанго? Я использую Джанго 1.11 и Postgres. но я не знаю, как это возможно, может в Джанго? Я использую Джанго 1.11 и Postgres. но я не знаю, как это возможно, может в Джанго? Я использую Джанго 1.11 и Postgres.
MohsenTamiz
1

голосов
1

ответ
429

Просмотры

Используя F () с аннотациями в том числе другого выражения запроса в Django

Это мой (упрощенно) использовать случай: от django.db импортных моделей класса MyType (models.Model): каковы бы ни были = models.CharField () класса А (models.Model): тип = models.ForeignKey (MyType) Класс B (модели .MODEL): my_type = models.ForeignKey (MyType) положение = models.IntegerField (по умолчанию = 0) Я хочу элементы из отсортированного по позиции поля B. Таким образом, я должен был бы присоединиться к таблицам A и B на MyType первой. Пытался это:. A.objects.all () аннотирование (позиция = B.objects.get (my_type = models.F ( 'типа')) положение.) .Order_by ( 'положение') Получил ошибку: FieldError: Не удается решить ключевое слово «тип» в поле. Варианты: my_type, my_type_id, позиция Так, Django понимает, что F ( «тип») пытается получить значение поля «типа» модели Б., которая, конечно же, не существует. Я хотел использовать поле «типа» модель А. Похоже, F относится к внутреннему запросу, а не к внешней. Итак, есть ли лучший способ получить то, что я хочу?
Jorge Arévalo
1

голосов
1

ответ
34

Просмотры

Регистрация несвязанных модели и удалить дубликаты из QuerySet

Мне очень нужна помощь здесь. У меня есть две таблицы ниже. Как вы можете видеть, что они полностью независимы (Нет отношений между ними). класс людей (models.Model): first_name = models.CharField (max_length = 30) last_name = models.CharField (max_length = 35) phone_number = models.CharField (нуль = True, пусто = True, max_length = 15), созданных = моделей. DateTimeField (auto_now = False, auto_now_add = True) класс Blacklist (models.Model): first_name = models.CharField (max_length = 30) last_name = models.CharField (max_length = 35) phone_number = models.CharField (пустой = True, max_length = 15) Как я продолжу достигнуть ниже: * у меня есть список телефонных номеров из таблицы «черного списка». Я хочу, чтобы иметь возможность проверить, если «phone_number (s)» поле из таблицы «Люди» идентична любой «PHONE_NUMBER» в «черный список». Если она совпадает, удаление дубликатов «PHONE_NUMBER» из таблицы «Люди». Я провел несколько дней, и не нашел правильный способ сделать это. Я использую базу данных PostgreSQL. Любая помощь приветствуется.
Curtis Banks
1

голосов
1

ответ
44

Просмотры

как использовать выражение QuerySet в то статье в условной аннотации в Django

если я вернуться в том просто F ( «ид») выражение получает значение идентификатора в главном QuerySet, но я могу использовать фильтр или любое выражение QuerySet с некоторыми значениями основного объекта. его есть способ для достижения этой цели. PS: им просто положить часть кода здесь за чистоту, но если вам нужно знать больше, пожалуйста, дайте мне знать,
beren5000
1

голосов
0

ответ
18

Просмотры

Джанго сделка, когда открытое соединение? @ Transaction.commit_manually @ transaction.atomic

я хочу знать, когда DBConnection открыт для Примера, как следовать логику ли ждать дб подключения к external_api_call или нет? @ Transaction.commit_manually Защиту do_something (): # 1. Теперь дб соединение открыть? # Api_call ответ = requests.get (~~~~) # 2. или подключение к БД открыт здесь? аа = User.objects.get (ID = 1)
SoungRyoul Kim
1

голосов
1

ответ
33

Просмотры

Выполните полнотекстовый поиск с помощью двух моделей

У меня есть две модели Элемента и владелец: класс Элемента (models.Model): имя = models.CharField (max_length = 255) Владелец = models.ForeignKey (Владелец, related_name = 'owner_items', on_delete = models.CASCADE,) is_featured = модели .BooleanField (выбор = выбор, по умолчанию = BOOL_NO) # ... Я полнотекстовой поиск (на основе Django документы) в имени элемента и полое описание. PostgreSQL, версия 10. search_vectors = (SearchVector ( 'имя', вес = 'А', конфигурации = 'английский') + SearchVector ( 'описание', вес = 'В', конфигурации = 'английский')) термины = [SearchQuery (срок), в течение срока keyword.split ()] SEARCH_QUERY = functools.reduce (operator.or_, термины) search_rank = SearchRank (search_vectors, SEARCH_QUERY, веса = [0,2, 0,4, 0,6, 1]) QS = Item.objects. все(). аннотирования (ранг = search_rank) .filter (rank__gte = 0,2) .order_by ( «- ранг») Я хочу, чтобы ввести также владелец, имя поля в уравнении, а также дать небольшое повышение в звании, если is_featured верно. У меня есть экземпляр модели Владелец, прежде чем делать этот поиск.
user3541631
1

голосов
1

ответ
26

Просмотры

Как сохранить присвоенные атрибуты объекта QuerySet после фильтрации? Альтернативы?

Может быть, это Штанга ответ, поэтому я объясню, почему я это делаю. У меня есть модель продукции. Я должен назначить каждому из них некоторый запас. Таким образом, у меня есть функция на модели продуктов, которая вычисляет много neccesary вещей, как акции и возвращает QuerySet. Так как моя дб модель немного «сложнее» я не могу использовать аннотации в этом случае. Поэтому я решил выполнить этот запрос в базу данных вручную, а затем назначить каждый продукт на QuerySet атрибут акции вручную. Что-то вроде: для продукта в queryset_products: product.stock = some_stock_calc ... Проблема возникает, когда я хочу использовать фильтры этой queryset_product. после выполнения что-то вроде: queryset_products = queryset_products.filter (...) атрибут акции потеряется Любое решение?
Hernan
1

голосов
1

ответ
333

Просмотры

Как я могу использовать Django список администратора и filterering в моих собственных взглядов?

Я только начинаю изучать Django, и мне нравится автоматическое перечисление в Django администратора и, как вы можете настроить фильтры и какие столбцы для отображения. Можно ли использовать его в своих собственных приложениях? Я посмотрел в источнике для администратора и понял, что я, вероятно, хочу, чтобы подклассы «-объект» Список изменений какого-то образом и использовать его в своих собственных взглядах. Есть идеи?
1

голосов
1

ответ
742

Просмотры

В Django с помощью fiter (), то получим () на QuerySet?

Могу ли я комбинировать использование фильтра () и получить () на querysets, чтобы вернуть объект в представлении Джанго? У меня есть следующий вид; Защиту my_view (запрос, город, магазин, пункт): пункт = Item.objects.filter (store__city = город, город = город) .get (пункт = пункт) Элементы являются уникальным для города и магазина. Я в настоящее время пытаюсь фильтровать QuerySet на основе два ForeignKey полей, а затем использовать получить на CharField, но я получаю сообщение об ошибке, что объект не существует. Могу ли я приближаюсь это неправильно или мой синтаксис куда-то? Спасибо
thesteve
1

голосов
1

ответ
452

Просмотры

потянув вычисленное поле в шаблон не работает с DISTINCT ()

Моя модель имеет размораживание на нем, который возвращает вычисляемое поле. В моем шаблоне я отображения полей моей модели и мои четкости вычисленных поле отображается тоже хорошо. Но когда я использую различен () в QuerySet того Защиту вычисляемого поле больше не появится в шаблоне. Зачем? Другой вопрос состоит в том, что внешние ключи теперь отображаются в их идентификаторы вместо их юникода. Как я могу получить вычисленное поле для отображения и не имеют идентификаторы, но обычный юникода протащить. возможно, используя отчетливый ли это ()? models.py @property Защиту calculated_total (Я): aggregated_cost = сумма ([m.total для т в Fee.objects.filter (контракт = self.contract, группируя = self.grouping, \ party_incurring_fee = self.party_incurring_fee, \ party_paying_fee = self.party_paying_fee)]) возвращают aggregated_cost виды.
darren
1

голосов
1

ответ
265

Просмотры

Джанго запрос посторонний объект, который встречается более чем один раз

Я с трудом поставив этот вопрос в слова, поэтому я прошу прощения. Вот ситуация. У меня есть таблица пользователей Foursquare возвраты. Каждый Checkin имеет внешний ключ к местоположению. Я хотел бы сказать: «Покажите мне все возвраты пользователей, отсортированные по сколько раз они проверяли в каждое место, с графом оформленного ввода в части подсчета запроса» Я также не хочу, расположение повторяется в списке. Итак, представьте, что это список пользователей Checkin: AABAABBC Я хочу возвращение быть A (4) В (3) C (1) Является ли это то, что я должен делать с запросом, или просто запросить их и сделать это в Python после этого? Brenden
Brenden
1

голосов
1

ответ
841

Просмотры

Джанго: о подсети запрос диапазона адресов

Привет всем, я работаю с MySQL и Джанго. Мне нужно некоторое время для запроса диапазона IP-адресов. Пример: 10.25.239.0/26, но я не имею ни малейшего представления. Не могли бы вы помочь мне?
user1161599
1

голосов
1

ответ
1.2k

Просмотры

Джанго - получение объекта по идентификаторам своих смежных областей

Давайте предположим, что мы имеем следующие модели: от django.db импортных моделей класса Foo (models.Model): Имя = models.CharField (max_length = 50) класс Bar (models.Model): Имя = models.CharField (max_length = 50) класс ZOMG (models.Model): Foo = models.ForeignKey (Foo) бар = models.ForeignKey (Bar) В ZOMG модель Foo и бар поля служат в качестве составной ключ, то есть для любой пары (Foo, Bar) есть только один объект ZOMG. В моем проекте мне нужно обновить тысячи ZOMG записей время от времени, поэтому эффективность поиска записей важна. Проблема заключается в том, что я не могу просто пройти foo_id и bar_id к Zomg.objects.get () метод: >>> г = models.Zomg.objects.get (foo_id = 1, bar_id = 1) Traceback (самый последний вызов в прошлом): Файл "", строка 1, в файле "/usr/lib/python2.7/site-packages/django/db/models/manager.py", строка 132, "" .Join (имена))) FieldError: Не удается разрешить ключевое слово 'foo_id' в поле. Варианты выбора: бар, Foo, идентификатор Однако, когда объект экземпляра foo_id и bar_id в значительной степени доступны: >>> z.foo_id 1 >>> z.bar_id 1 Теперь я вынужден получить Foo и Bar объектов первой и а затем использовать их, чтобы получить нужный объект ZOMG, сделав два ненужных запросов к базе данных: >>> е = models.Foo.objects.get (ID = 1) >>> б = models.Bar.objects.get (ID = 1) >>> г = models.Zomg.objects.get (Foo = е, бар = б) Таким образом, вопрос, как я могу получить объект ZOMG по идентификаторам своих смежных областей? "" .Join (имена))) FieldError: Не удается разрешить ключевое слово 'foo_id' в поле. Варианты выбора: бар, Foo, идентификатор Однако, когда объект экземпляра foo_id и bar_id в значительной степени доступны: >>> z.foo_id 1 >>> z.bar_id 1 Теперь я вынужден получить Foo и Bar объектов первой и а затем использовать их, чтобы получить нужный объект ZOMG, сделав два ненужных запросов к базе данных: >>> е = models.Foo.objects.get (ID = 1) >>> б = models.Bar.objects.get (ID = 1) >>> г = models.Zomg.objects.get (Foo = е, бар = б) Таким образом, вопрос, как я могу получить объект ZOMG по идентификаторам своих смежных областей?
1

голосов
1

ответ
113

Просмотры

Соотношение (х> 1) -в-многим

Это, вероятно, более общий вопрос о базе данных, чем Джанго один, но давайте идти. Я очень часто то, что можно было бы рассматривать как 2-ко-многим отношений. Например, у меня есть класс матч в моем проекте, который представляет собой столкновение между двумя командами. Во-первых, я использовал многие-ко-многим: Матч (модель): команды = ManyToManyField ( «Команда», related_name = «совпадает с») # Всегда две команды Кончилось тем, что очень неэффективно для спичечных связанных страниц. Особенно в Django 1.3, потому что не существует никакого эквивалента select_related для many_to_many связи. И это немного больно приходится перебирать, когда вы в настоящее время существует ровно два элемента. Затем я перешел на эту модель: Match (модель): команд = ManyToManyField ( 'Команда', related_name = 'совпадает с') # Всегда две команды TEAM1 = ForeignKey ( 'Команда') team2 = ForeignKey ( 'Команда' ) Когда я хочу показать матч связанных страниц, я могу использовать select_related и отображать очень эффективно две команды. И когда я нахожусь на странице команды, я могу следовать «спички» отношению, чтобы получить все матчи, как и раньше. Но я считаю, что 3 поля, чтобы иметь дело с одним отношением совершенно ужасно. Могу ли я сделать это правильно? Чтобы вы посоветовали ?
Ashe
1

голосов
2

ответ
875

Просмотры

Запрос Django модель, основанные на взаимосвязи между субэлементами ForeignKey

класс Цена (models.Model): дата = models.DateField () цена = models.DecimalField (max_digits = 6, decimal_places = 2) продукт = models.ForeignKey ( "Продукт") Класс продукта (models.Model): Имя = модели .CharField (max_length = 256) price_history = models.ManyToManyField (Цена, related_name = «PRODUCT_PRICE», пустой = True) Я хочу, чтобы запросить продукт таким образом, что я возвращать только те продукты, для которых цена на дату х выше, чем любой более ранней даты , Благодарности Boffins.
jsj
1

голосов
1

ответ
172

Просмотры

Как получить количество сообщений на каждый день с аннотацией в Django?

У меня есть модель Post, которая имеет datetime.date поле для posted_date. Мне нужно найти, сколько сообщений производится пользователем на каждый день. Создание запроса на каждый день кажется глупым. Я не мог понять, как сделать запрос агрегации API с использованием Аннотировать. Является ли Post.objects.filter (автор = someuser) .annotate (dailycount = Count ( 'posted_day')) правильный путь? Тогда, как я могу использовать это, чтобы получить число сообщений на определенный день? Моя модель: класс Поста (models.Model): posted_day = models.DateField (по умолчанию = date.today) автор = models.ForeignKey (Пользователь, нуль = True)
damon
1

голосов
1

ответ
139

Просмотры

Джанго выполняет тот же запрос, в 5 раз, когда QuerySet передается в контекст процессора

У меня есть эта QuerySet: бренд = get_object_or_404 (марка, ярлык = ярлык) объявления = Ad.objects.filter (mod__submodel__model__brand = марка) .values ​​( «ID») Но по какому-тому причиню Джанго выполняет тот же запрос, в 5 раз (количество запросов делает не зависит от числа строк). Вот это: SELECT ••• ОТ "catalog_ad" Inner Join "catalog_mod" ON "(" catalog_ad "mod_id" = "catalog_mod" "ID"..) Внутреннее объединение "catalog_submodel" ON "(" catalog_mod "submodel_id" =. "catalog_submodel". "ID") INNER JOIN "catalog_model" ON ( "catalog_submodel". "model_id" = "catalog_model". "ид"), где "catalog_model". "Brand_ID" = 1 LIMIT 21 Так почему же Джанго выполнить то же самое запрос в 5 раз? ОБНОВИТЬ:
Daniil Ryzhkov
1

голосов
3

ответ
221

Просмотры

Проверка существования объекта с такими же m2m отношениями в Джанго?

У меня есть модель Учителя, как это: имя = models.CharField (max_length = 100, уникальный = True) конечно = models.ManyToManyField (курс) и модель курса: COURSE_NAME = models.CharField (max_length = 100, уникальный = True) При создании объект Учитель, я хочу, чтобы убедиться, что новый объект я создаю не должны иметь те же курсы (M2M отношение) с любым другим существующим объектом учителей. Например, если учитель объект А имеет английский, математика, история отношения M2M курс, поэтому не новый объект Учитель не может иметь английский язык, математика, история. Просмотр Защиту AddTeacher (запрос): # идентификаторы являются объектом курсы идентификатор ID1 = request.POST.get ( 'id1') id2 = request.POST.get ( 'id2') id3 = request.POST.get ( 'id3') TObject = Преподаватель (имя = "Temp") Tobject.save () для г в [ID1, ID2, ID3]: CObject = Course.objects.get (ID = I) TObject.
user1170793
1

голосов
1

ответ
813

Просмотры

Как рассчитать продолжительность с помощью STARTTIME & EndTime полей в QuerySet в Django?

У меня есть эта модель: класс TimeInterval (models.Model): = models.DateTimeField начального времени () = Конечный = models.DateTimeField () Как можно агрегировать средний интервал времени, используя только API QuerySet? Я попытался это: QS = TimeInterval.objects.extra (выберите = { "длительность": "Конечное время - STARTTIME"}). Совокупная (Avg ( "длительность")), но он бросает: FieldError: Не удается разрешить ключевое слово 'длительность' в поле , Варианты: Конечное время, начальный промежуток
Benji Mizrahi
1

голосов
1

ответ
255

Просмотры

Django manytomany запрос object_set полем

У меня есть ManyToMany поля в модели, и я хочу, чтобы запросить его от другой модели, которая имеет _set поля по умолчанию: Класс аэропорт (models.Model): имя = models.CharField (max_length = 1024, пустой = True, нуль = True) Защита __unicode__ (Я): возвращение юникод (self.name) класс Agent (models.Model): имя = models.CharField (max_length = 1024, пустой = True, NULL = True) = аэропорты models.ManyToManyField (аэропорт) Защита __unicode __ (Я) : возвращение юникода (self.name) Так как запрос: а = Agents.objects.filter ( 'ASD' airports_name_contains =) работает отлично. Но: Ь = Airport.objects.filter (agent_set__name__contains = «agent_») дает не удается разрешить ключевое слово «agent_set_name» в поле Я хочу, чтобы запросить именно модель аэропорта. Какие-либо предложения?
Feanor
1

голосов
1

ответ
116

Просмотры

Граф и ИЛИ раздел в QuerySet Django

У меня есть довольно простой запрос, который не действует, как ожидалось. # Получить новости Новости = News.objects.filter (доступно = True), если площадь: новости = news.annotate (Count ( 'области')) фильтр (Q (areas__count = 0) | Q (области = область)) Я ожидаю. чтобы новости без каких-либо территорий, пораженных или с указанной областью. Но я не получаю ни один из них. Когда я печатаю запрос я получаю:..... ВЫБРАТЬ "chimere_news" "ID", "chimere_news", "название", "chimere_news" "доступные", "chimere_news" "дата", "chimere_news", "содержание", COUNT ( "chimere_news_areas".»
Étienne Loks
1

голосов
1

ответ
315

Просмотры

Джанго получить более конкретные данные часов диапазона

Это моя модель: класс людей (models.Model): Name = models.CharField (max_length = 100) Lastname = models.CharField (max_length = 100) Record_Date = models.DateTimeField () В views.py "" "принимает целое число значение, представляющее день недели от 1 (воскресенье) до 7 (суббота). «»»People.objects.filter (Record_Date__week_day = 1) Это дает мне все воскресенье Record_Date годов. Это нормально. Но я хочу, чтобы получить более конкретный час внутри каждых данных воскресенья. Например, каждое воскресенье 10: 30-11: 55. Как я могу это сделать с помощью запроса или Что такое другие варианты, чтобы сделать это?
John Smith
1

голосов
1

ответ
877

Просмотры

django : order queryset by model method without converting to list

date_response но! я не могу преобразовать этот QuerySet в список как жалобы = список (жалобы) complaints.sort (ключ = лямбда х: x.get_latest_response () date_response.), потому что после этого я сделать этот QuerySet в object_list: вернуть object_list (запрос, template_name = «жалобы /complaints.html», QuerySet = жалобы paginate_by = COMPLAINTS_PAGE_SIZE, extra_context = extra_context) также метод: сортируется (жалобы, ключ = лямбда: с a.get_latest_response (). date_response) не работает тоже вы можете дать мне какие-либо советы, пожалуйста?
yital9
1

голосов
2

ответ
126

Просмотры

Как получить элементы из Джанго QuerySet?

Я пытаюсь получить элемент видео в QuerySet, но у меня возникают проблемы с извлечением его. user_channel = Everything.objects.filter (профиль = request.user, плейлист = 'Channel') печать user_channel [0] #returns первого результата без ошибок печати user_channel [0] [ 'видео'] #returns ошибки Models.py: класс Все (models.Model): профиль = models.ForeignKey (Пользователь) плейлиста = models.CharField ( 'Playlist', max_length = 2000, нуль = True, пустой = True) платформа = models.CharField ( 'платформа', max_length = 2000 , нуль = True, пустой = True) видео = models.CharField ( 'VideoID', max_length = 2000, нуль = True, пусто = True) video_title = models.CharField ( 'Название видео', max_length = 2000, нуль = True , пустой = True) Защита __unicode __ (Я): возвращение и '% s% s% s% s% s' % (self.profile, самостоятельно.
sharataka
1

голосов
2

ответ
6.8k

Просмотры

Джанго: ValueError: слишком много значений для распаковки

Я получаю ValueError, и я не могу понять ошибку за жизнь мне. Я знаю, что ошибка означает, что есть несколько значений, передаваемых переменной, чем ожидалось (то есть, (х, у) = 1, 2, 3), но я не вижу, почему это проблема. Это где ошибка (в views.py файле): ## image_pks просто список первичных ключей ImageItem (например, [1, 2] или [5]) QuerySet = ImageItem.objects.filter (pk__in = image_pks ) ImageInfoFormset = modelformset_factory (ImageItem, поля = ( 'название', 'заголовок'), дополнительное = 0) formset = ImageInfoFormset (здесь происходит QuerySet) ## Ошибка !!! Это то, что модель ImageItem выглядит следующим образом: класс ImageItem (models.Model): пользователь = models.ForeignKey (Пользователь) UPLOAD_DATE = models.DateTimeField (auto_now_add = True) LAST_MODIFIED = models.DateTimeField (auto_now = True) библиотека = модель. ForeignKey (библиотека) img_big = models.ImageField (upload_to = img_get_file_path) img_363 = models.ImageField (upload_to = img_get_file_path) название = models.CharField (max_length = 50, пробел = True) титр = models.CharField (max_length = 1000, пусто = True) Это информация о TRACEBACK: А здесь локальные переменные на TRACEBACK: Позвольте мне знать, если вы, ребята, нужно больше информации, спасибо! EDIT: здесь все отладочные при условии: Traceback: Файл "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/handlers/base.py" в get_response 111. ответ = обратного вызова (запрос, * callback_args, ** callback_kwargs) Файл "/Users/sgarza62/riotry_master/riotry/backboard_general/views.py" в Backboard_Home 44. formset = ImageInfoFormset (QuerySet) # МНОГО ЗНАЧЕНИЯ ОШИБКА ЗДЕСЬ! Файл "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/forms/models.py" в __init__ 424. супер (BaseModelFormSet, самость) .__ INIT __ ( ** по умолчанию) Файл "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/forms/formsets.py" в __init__ 50. self._construct_forms () Файл "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/forms/formsets.py" в _construct_forms 114. I в xrange (self.total_form_count ( )): Файл "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/forms/formsets.py" в total_form_count 88. фильтр (pk__in = image_pks) до QuerySet = ImageItem.objects.get (рк = 10) (где 10 произвольный идентификатор), я получаю следующее сообщение об ошибке: AttributeError: объект «ImageItem» не имеет атрибута «получить», и изначально проблематичная линия бросает ошибку! Это странная ошибка, потому что ImageItem просто нормальная модель. Конечно, это имеет атрибут «получить». Есть ли что-то делать с тем, что это QuerySet сначала оценивается по проблематичной линии (formset = ImageInfoFormset (QuerySet))? Является ли ImageItem назначения на что-то другое после запроса написано, но прежде, чем она оценивается? и первоначально проблематичная линия бросает ошибку! Это странная ошибка, потому что ImageItem просто нормальная модель. Конечно, это имеет атрибут «получить». Есть ли что-то делать с тем, что это QuerySet сначала оценивается по проблематичной линии (formset = ImageInfoFormset (QuerySet))? Является ли ImageItem назначения на что-то другое после запроса написано, но прежде, чем она оценивается? и первоначально проблематичная линия бросает ошибку! Это странная ошибка, потому что ImageItem просто нормальная модель. Конечно, это имеет атрибут «получить». Есть ли что-то делать с тем, что это QuerySet сначала оценивается по проблематичной линии (formset = ImageInfoFormset (QuerySet))? Является ли ImageItem назначения на что-то другое после запроса написано, но прежде, чем она оценивается?
sgarza62
1

голосов
2

ответ
2.1k

Просмотры

Как только модели, связанные с QuerySet Джанго

У меня нет большого опыта работы с Django (я использую 1.3), поэтому у меня есть ощущение на задней части моей головы, что это глупый вопрос ... Но в любом случае: у меня есть модели, как это: класс пользователей (модели. Модель): имя = models.CharField () класс продукт (models.Model): имя = models.CharField () публичный = models.BooleanField () класс Order (models.Model): пользователь = models.ForeignKey (пользователь) продукт = models.ManyToManyField (продукт, через 'OrderProduct' =) класс OrderProduct (models.Model): продукт = models.ForeignKey (Product) порядок = models.ForeignKey (Order) истечение = models.DateField () И давайте сказать, что я какой-то запрос как этот Product.objects.filter (order__status = «завершена», order__user ____ ID = 2) Таким образом, я хотел бы получить все продукты, которые Пользователь2 купили (скажем, это просто Product1). Здорово. Но теперь я хочу, чтобы срок действия для этого продукта, но если я называю Product1.orderproduct_set.all () Я хочу получить все записи из OrderProduct с Product1, но я просто хочу, чтобы один вернулся из QuerySet. Я знаю, что могу просто запустить другой запрос на OrderProducts, но это будет еще один удар по базе данных только вернуть данные запроса я выбежала прежде, чем уже можно получить. .query на это дает мне: SELECT "shop_product" "идентификатор", "shop_product" "имя" FROM "shop_product" INNER JOIN "shop_orderproducts" ON.. ( "shop_product" "ID" = "shop_orderproducts" "product_id"..) INNER JOIN "shop_order" ON "(shop_orderproducts". "order_id" = "shop_order". "ID"), где ( "shop_order". "user_id" = 2 и " = Завершено) ORDER BY «shop_product». «Заказ» ASC Если бы я мог SELECT * вместо определенных полей я бы все данные, которые мне нужно в одном запросе. Есть в любом случае, чтобы построить этот запрос и получить только данные, связанные с ним? EDIT Я чувствую, что нужно уточнить некоторые моменты, я сожалею, что не было ясно: я не запрашивая против OrderProduct, потому что некоторые продукты являются открытыми и не должны быть куплены, но я до сих пор их перечислить, и они не были бы возвращены путем запроса к OrderProduct в результате я ожидаю список продуктов, вместе с данными заказа (в случае, если они есть). В JSON, это бы выглядело примерно так [{ID: 1, заказ: 1, г. 2013-03-03, общественное ложь}, {ID: 1, заказ:, г., публика: верно Спасибо = Завершено) ORDER BY «shop_product». «Заказ» ASC Если бы я мог SELECT * вместо определенных полей я бы все данные, которые мне нужно в одном запросе. Есть в любом случае, чтобы построить этот запрос и получить только данные, связанные с ним? EDIT Я чувствую, что нужно уточнить некоторые моменты, я сожалею, что не было ясно: я не запрашивая против OrderProduct, потому что некоторые продукты являются открытыми и не должны быть куплены, но я до сих пор их перечислить, и они не были бы возвращены путем запроса к OrderProduct в результате я ожидаю список продуктов, вместе с данными заказа (в случае, если они есть). В JSON, это бы выглядело примерно так [{ID: 1, заказ: 1, г. 2013-03-03, общественное ложь}, {ID: 1, заказ:, г., публика: верно Спасибо ASC Если бы я мог SELECT * вместо определенных полей я бы все данные, которые мне нужно в одном запросе. Есть в любом случае, чтобы построить этот запрос и получить только данные, связанные с ним? EDIT Я чувствую, что нужно уточнить некоторые моменты, я сожалею, что не было ясно: я не запрашивая против OrderProduct, потому что некоторые продукты являются открытыми и не должны быть куплены, но я до сих пор их перечислить, и они не были бы возвращены путем запроса к OrderProduct в результате я ожидаю список продуктов, вместе с данными заказа (в случае, если они есть). В JSON, это бы выглядело примерно так [{ID: 1, заказ: 1, г. 2013-03-03, общественное ложь}, {ID: 1, заказ:, г., публика: верно Спасибо ASC Если бы я мог SELECT * вместо определенных полей я бы все данные, которые мне нужно в одном запросе. Есть в любом случае, чтобы построить этот запрос и получить только данные, связанные с ним? EDIT Я чувствую, что нужно уточнить некоторые моменты, я сожалею, что не было ясно: я не запрашивая против OrderProduct, потому что некоторые продукты являются открытыми и не должны быть куплены, но я до сих пор их перечислить, и они не были бы возвращены путем запроса к OrderProduct в результате я ожидаю список продуктов, вместе с данными заказа (в случае, если они есть). В JSON, это бы выглядело примерно так [{ID: 1, заказ: 1, г. 2013-03-03, общественное ложь}, {ID: 1, заказ:, г., публика: верно Спасибо Есть в любом случае, чтобы построить этот запрос и получить только данные, связанные с ним? EDIT Я чувствую, что нужно уточнить некоторые моменты, я сожалею, что не было ясно: я не запрашивая против OrderProduct, потому что некоторые продукты являются открытыми и не должны быть куплены, но я до сих пор их перечислить, и они не были бы возвращены путем запроса к OrderProduct в результате я ожидаю список продуктов, вместе с данными заказа (в случае, если они есть). В JSON, это бы выглядело примерно так [{ID: 1, заказ: 1, г. 2013-03-03, общественное ложь}, {ID: 1, заказ:, г., публика: верно Спасибо Есть в любом случае, чтобы построить этот запрос и получить только данные, связанные с ним? EDIT Я чувствую, что нужно уточнить некоторые моменты, я сожалею, что не было ясно: я не запрашивая против OrderProduct, потому что некоторые продукты являются открытыми и не должны быть куплены, но я до сих пор их перечислить, и они не были бы возвращены путем запроса к OrderProduct в результате я ожидаю список продуктов, вместе с данными заказа (в случае, если они есть). В JSON, это бы выглядело примерно так [{ID: 1, заказ: 1, г. 2013-03-03, общественное ложь}, {ID: 1, заказ:, г., публика: верно Спасибо т должны быть куплены, но я до сих пор перечислить их, и они не были бы возвращены путем запроса к OrderProduct В результате я ожидаю список продуктов, вместе с данными заказа (в случае, если они есть). В JSON, это бы выглядело примерно так [{ID: 1, заказ: 1, г. 2013-03-03, общественное ложь}, {ID: 1, заказ:, г., публика: верно Спасибо т должны быть куплены, но я до сих пор перечислить их, и они не были бы возвращены путем запроса к OrderProduct В результате я ожидаю список продуктов, вместе с данными заказа (в случае, если они есть). В JSON, это бы выглядело примерно так [{ID: 1, заказ: 1, г. 2013-03-03, общественное ложь}, {ID: 1, заказ:, г., публика: верно Спасибо
Gabe
1

голосов
1

ответ
117

Просмотры

Джанго добавить друзей в запрос

Я пытаюсь создать запрос, где я восстановить всю «деятельность» для зарегистрированного пользователя и его «друзей», отсортированных по последним. (Друзья соединены с помощью Django-Simple-друзей). Следующий запрос работает отлично подходит для извлечения всей деятельности для вошедшего в отсортированном по последнему пользователю, но я не уверен, как также включать связные «друг» пользователя. активность = Activity.objects.filter (пользователь = request.user) .order_by ( '- created_date') Мой класс активность: Класс активности (models.Model): пользователь = models.ForeignKey (Пользователь) created_date = models.DateTimeField (по умолчанию = datetime.now) activity_type = models.IntegerField (по умолчанию = 0) Я ценю время и опыт.
bbrooke
1

голосов
1

ответ
69

Просмотры

QuerySet Джанго отношения

У меня есть две модели: класс дохода (models.Model): идентификатор = models.AutoField ( 'ID', primary_key = True) дата = models.DateField ( 'Date', пустой = True, нуль = True) пользователь = models.ForeignKey (Пользователь, нуль = True, help_text = "доход пользователя") класс счетов (models.Model): идентификатор = models.AutoField ( 'ID', primary_key = True) доход = models.ForeignKey (доход, нуль = True, пусто = Правда, related_name = 'Доход') пользователь = models.ForeignKey (пользователь, нуль = True, пусто = True, related_name = 'User_Invoice'), и мне нужно, чтобы получить "Доход", которые не связаны с какой-либо "Счет-фактура". Я не нахожу никакого способа, чтобы увидеть эту проблему. Большое спасибо :)
Alfredo
1

голосов
1

ответ
1.4k

Просмотры

Джанго - Фильтр внешнего ключа в QuerySet

В следующей модели: класс продукта (models.Model): Имя = models.CharField (max_length = 255) created_in = models.DateTimeField (auto_now = True) класс Цена (models.Model): продукт = models.ForeignKey (Product) цена = models.DecimalField (max_digits = 6, decimal_places = 2) created_in = models.DateTimeField (auto_now = True) Я хочу сделать что-то вроде этого: продукты = Product.objects.filter (price__gte = Decimal (10)) #It рассмотрел все цены Я просто нужно последний Как я запросить продукт с учетом только последняя цена «created_in», связанные? Спасибо!!
Guilherme GM
1

голосов
1

ответ
32

Просмотры

Элегантный способ найти соответствующие поля в Django

Поэтому у меня есть экземпляр модели Django ( «пункт») и список полей и смежных областях, я хочу найти. В настоящее время я делаю это: related_fields = [ 'customer__name', 'customer__address__postcode', 'дата'] для related_field в related_fields: sub_item = п для части в related_field.split ( '__'): sub_item = GetAttr (sub_item, часть) item_fields.append (sub_item) Я надеюсь, что имеет смысл, но это самый эффективный способ сделать это? Конечно, должно быть Джанго функция полезности где-то, что делает это в SQL гораздо быстрее?
SColvin
1

голосов
1

ответ
52

Просмотры

Django template: access query_set and non-query_set results in same template

У меня есть приложение Django, который содержит информацию о школах и государствах. Я хочу, чтобы мой шаблон, чтобы отобразить список школ в государстве, а также от имени государства на основе параметра состояния в URL. Таким образом, если пользователь зайдет на example.com/vermont/ они будут видеть список Вермонта школ и тег, который говорит, что они находятся на странице «Вермонт». Я могу получить список школ, в состоянии работать, но я не могу понять, как просто указать имя состояния в теге h1. Вот мой models.py: от django.db импортных моделей класса школы (models.Model): school_name = models.CharField (max_length = 200) location_state = models.CharField (max_length = 20) Защита __unicode __ (Я): возвращает себя. school_name Вот мой views.py: от django.views.generic класса импорта ListView StateListView (ListView): модель = Школа template_name = 'state.html'
wsvincent
1

голосов
1

ответ
54

Просмотры

Является ли `order_by` метод Добавка Джанго QuerySet в?

Учитывая такую ​​модель и запрос, то, что результат запроса будет, если я позвоню order_by () несколько раз? Класс MyModel (models.Model). field_a = models.IntegerField () field_b = models.IntegerField () QS = MyModel.objects.all () order_by ( 'field_a') QS = qs.order_by ( 'field_b') Что SQL будет в достаточном количестве генерировать? ORDER BY field_a, field_b или ORDER BY field_b? То есть, сделать последующие вызовы order_by () замещает предыдущие вызовы, или добавить к ним?
David Eyk
1

голосов
2

ответ
2.4k

Просмотры

QuerySet Не удается изменить порядок запроса один раз кусочек был взят

У меня возникли некоторые проблемы с QuerySet в Django. К сожалению, я не могу использовать Django REST Framework построен в пагинацией, поскольку он добавляет поля JSON страшных, такие как «следующий», «предыдущий» и «кол», поэтому я хотел бы ограничить с помощью: параметр [10] на QuerySet. В моей попытке ниже, я получаю сообщение об ошибке: QuerySet Не удается изменить порядок запроса один раз кусочек был взят. Класс LocationsViewSet (viewsets.ReadOnlyModelViewSet): serializer_class = serializers.LocationSerializer упорядочение = ( 'LOCATION_NAME') Защиту get_queryset (Я): QuerySet = models.GeonamesLocation.objects.all () name_prefix = self.request.QUERY_PARAMS.get ( 'name_prefix », None), если name_prefix не является None: если Len (name_prefix) <3: поднять exceptions.ParseError ("»
LondonAppDev
1

голосов
3

ответ
120

Просмотры

Как сделать присоединиться в Django?

У меня есть следующие модели: класс Часть (models.Model): пользователь = models.ForeignKey (Пользователь) PART_NUMBER = models.CharField () класса Inventory (models.Model): пользователь = models.ForeignKey (Пользователь) часть = models.ForeignKey (часть) акции = models.IntegerField () storage_location = ... класс Project (models.Model): пользователь = models.ForeignKey (пользователь) имя = models.CharField () класс ProjectItem (models.Model): проект = модель. ForeignKey (проект) часть = models.ForeignKey (часть) количество = models.IntegerField () Там может быть несколько объектов инвентаризации для данной части, по одному для каждого места хранения. Учитывая проект, я хочу, чтобы получить список всех ProjectItem наряду с соответствующими объектами инвентаризации для каждой части ProjectItem. Возможно ли это с помощью запроса Django? Я мог бы сделать для пи в ProjectItem.objects. фильтр (проект = проект): для и в Inventory.objects.filter (пользователь = пользователь, часть = pi.part) ... но я не хочу, чтобы сделать запрос для каждого ProjectItem. Я хочу сделать: project_items = ProjectItem.objects.filter (проект = проект, part__inventory__user = пользователь), но я не знаю, как потом подобрать объекты инвентаризации, которые были подобраны в запросе. Есть идеи? Редактирование: Позвольте мне пояснить на примере. Фиксирует проект A и хлопок пользователя во всем. Вот некоторые таблицы (с проектом и пользователем опущена). ProjectItem: Часть Количество ----------------------- X 2 Y 1 Inventory: Часть Фото Местоположение -------------- ------- X 91 SX 13 TY 14 SY 101 U То, что я хочу (в виде таблицы): Часть Количество на склад Местонахождение ------------------------------------ X-91 SX-13 TY-14 SY 1 101 U То есть, я просто хочу, чтобы присоединиться к ProjectItem и инвентарь вдоль части и пользователя. редактировать 2: Одна возможность состоит в том, чтобы сделать два запроса (объекты, связанные объекты) и сделать объединение в Python, как описано здесь: http://blog.roseman.org.uk/2010/01/11/django-patterns-part- 2-эффективные реверс-поиски / я бы не назвал это эффективным по сравнению с делать объединение в базе данных, но это может быть лучше, чем п + 1 запросов.
Cotton Seed
1

голосов
1

ответ
1k

Просмотры

Джанго Получить диапазон в QuerySet

В моем приложении Django, у меня есть несколько большой коллекция моделей упорядоченных по количеству раза они завершенное действие. Это лидеры. Я хочу, чтобы люди, используя мое приложение, чтобы увидеть, какое место они в, и имена двух людей, живущих выше и двух людей под ними. Так что я должен был бы найти положение пользователя в вопросе в этом QuerySet, а затем найти двух пользователей выше и ниже его. Что является наиболее эффективным способом для достижения этой цели? Я рисую заготовки ...
Iohannes

Просмотр дополнительных вопросов