Size: a a a

Django [ru] #STAY HOME

2019 March 07

GT

Guu Tuu in Django [ru] #STAY HOME
Sergei Mikhailov
Всем привет. У меня есть несколько моделей, вторая ссылается на первую, третья, на вторую итд. И есть модель, которая как бы контейнер всех предыдущих моделей. Я хочу сделать форму и вьюху для создания экземпляров последней модели, в ней будут исключительно селекты, для выбора сущностей 1, 2, 3 итд моделей. Но так как эти модели зависимые, мне нужно, чтобы при выборе концертного объекта, допустим 1 модели, у меня менялся список выбора модели 2 итд. Сделать надо без всяких автокомплитов итд. Как мне действовать? Каким-то образом передавать с формой словарь зависимостей и все через жкуери делать в шаблоне или как?
Прошу прощения, если вопрос тупой.
создаешь форму, там добавляешь виджеты с выбором и подключаешь туда данные из этих форм. Есть одно но. Если у тебя будет +100500 записей, то этот метод не пойдет)
источник

PM

Preved Medved in Django [ru] #STAY HOME
Подскажите пожалуйста в чем причина бага. При упорядочевании по полю owner (?ordering=owner) при пагинации все работает корректно (записи не пропадают). При упорядочевании по полю owner (?ordering=-owner) в обратную сторону не отображается часть записей и две первых страницы заполнены одинаковыми объектами(?ordering=-owner и ?ordering=-owner&page=2 идентичны)
class MessageViewSet(viewsets.ModelViewSet):
 serializer_class = MessageSerializer
 permission_classes = [permissions.IsAuthenticated]
 pagination_class    = MessagePageNumberPagination
 filter_backends = (filters.SearchFilter, filters.OrderingFilter,)
 search_fields = ('text',)
 ordering_fields = ('text', 'status', 'is_payed', 'owner' )
 def get_queryset(self):
   if self.request.user.is_staff or self.request.user.is_superuser:
     return Message.objects.all().order_by('-id')
   else:
     return self.request.user.messages.all().order_by('-id')    
 def perform_create(self, serializer):
   serializer.save(owner=self.request.user)
источник

PM

Preved Medved in Django [ru] #STAY HOME
причем на страничке ?ordering=-owner записи выстраиваются последние пять (page_size = 5) в порядке убывания, а на второй ?ordering=-owner&page=2 эти же последние пять записей выстраиваются в порядке возрастания
подозрение что как то связано с тем что
  owner = models.ForeignKey(User, related_name="messages", on_delete=models.CASCADE, 
   null=True)
ForeignKey, потому что с остальными несвязанными полями пагинация с фильтрацией проходит без проблем в обоих направлениях
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Preved Medved
причем на страничке ?ordering=-owner записи выстраиваются последние пять (page_size = 5) в порядке убывания, а на второй ?ordering=-owner&page=2 эти же последние пять записей выстраиваются в порядке возрастания
подозрение что как то связано с тем что
  owner = models.ForeignKey(User, related_name="messages", on_delete=models.CASCADE, 
   null=True)
ForeignKey, потому что с остальными несвязанными полями пагинация с фильтрацией проходит без проблем в обоих направлениях
Может потому что у тебя в get_queryset стоит order_by?
источник

PM

Preved Medved in Django [ru] #STAY HOME
я убирал - и все равно теряются объекты причем только при отрицательной фильтрации
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Посмотри какие запросы выполняются при каждом из
источник

PM

Preved Medved in Django [ru] #STAY HOME
ты имеешь ввиду "GET /api/investors/?ordering=-owner HTTP/1.1" 200 23967 ?
"GET /api/investors/?ordering=-owner&page=2 HTTP/1.1" 200 24213
источник

АВ

Александр Виноградов in Django [ru] #STAY HOME
как обычно делают представления, если некоторые данные надо иметь на всех страницах?
Например, данные это представления надо иметь везде, в том числе на страницах от другого приложения
class IndexView(generic.ListView):

   queryset = models.Partitions.published.all()
   template_name = 'core/index.html'
   context_object_name = 'partitions'
источник

АС

Артем Сухаренко in Django [ru] #STAY HOME
Народ кто сталкивался с
django.http.request.RawPostDataException: You cannot access body after reading from request's data stream

Это как то можно победить? Пытался получить данные через DRF @api_view(['POST'])
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Preved Medved
ты имеешь ввиду "GET /api/investors/?ordering=-owner HTTP/1.1" 200 23967 ?
"GET /api/investors/?ordering=-owner&page=2 HTTP/1.1" 200 24213
Не, я про sql
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Александр Виноградов
как обычно делают представления, если некоторые данные надо иметь на всех страницах?
Например, данные это представления надо иметь везде, в том числе на страницах от другого приложения
class IndexView(generic.ListView):

   queryset = models.Partitions.published.all()
   template_name = 'core/index.html'
   context_object_name = 'partitions'
Если на всех то есть context processor - ы
источник

PM

Preved Medved in Django [ru] #STAY HOME
ORDER BY `drfreact_api_message`.`owner_id` DESC  LIMIT 5', 'time': '0.001'
ORDER BY `drfreact_api_message`.`owner_id` DESC  LIMIT 5 OFFSET 5', 'time': '0.001'
всю простыню не стал копипастить...выглядит вроде нормально🤷‍♂️
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Preved Medved
ORDER BY `drfreact_api_message`.`owner_id` DESC  LIMIT 5', 'time': '0.001'
ORDER BY `drfreact_api_message`.`owner_id` DESC  LIMIT 5 OFFSET 5', 'time': '0.001'
всю простыню не стал копипастить...выглядит вроде нормально🤷‍♂️
Это между двумя страницами где данные пропадают?
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Условия выборки не меняются?
источник

PM

Preved Medved in Django [ru] #STAY HOME
ага, они выдают одно и то же но в разном порядке...
источник

P

Pooh in Django [ru] #STAY HOME
Ахуительные скрины
источник

PM

Preved Medved in Django [ru] #STAY HOME
сорян ща пересниму
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Ну по запросам вроде нормально, смотри может где-то реверсе стоит
источник

PM

Preved Medved in Django [ru] #STAY HOME
?ordering=-owner на этой страничке к примеру с 393 айдишника заканчивается 389 ?ordering=-owner&page=2 а тут с 388 идет до 392 почему то в обратном направлении, чтоб не скринить. Что интересно - при фильтрации по несвязанным полям, такой проблемы нету....где то действительно что то реверсит
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Preved Medved
?ordering=-owner на этой страничке к примеру с 393 айдишника заканчивается 389 ?ordering=-owner&page=2 а тут с 388 идет до 392 почему то в обратном направлении, чтоб не скринить. Что интересно - при фильтрации по несвязанным полям, такой проблемы нету....где то действительно что то реверсит
А owner у всех разный?
источник