Size: a a a

Django [ru] #STAY HOME

2020 July 07

B

BuTaMuH4uK in Django [ru] #STAY HOME
Nikolay Cherniy
так тыж говорил что не работает)
с filter() не работает
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
а, ну да, я не заметил что у тебя там фильтр, конечно гет должен быть
источник

B

BuTaMuH4uK in Django [ru] #STAY HOME
а с get() все хорошо но он вернет один объект из 5
источник

DO

D. Ouhh in Django [ru] #STAY HOME
class ShopRetrieveUpdateView(generics.RetrieveUpdateAPIView):
   permission_classes = (IsAuthenticated,)
   serializer_class = ShopSerializer

   def perform_authentication(self, request):
       import pdb; pdb.set_trace()
       super().perform_authentication(request)

   def update(self, request, *args, **kwargs):
       serializer = self.serializer_class(request.user, data=request.data, partial=True)
       serializer.is_valid(raise_exception=True)
       serializer.save()
       return Response(serializer.data, status=status.HTTP_200_OK)

   def retrieve(self, request, *args, **kwargs):
       serializer = self.serializer_class(request.user)
       return Response(serializer.data)

есть такая вьюшка. на retrieve всё работает нормально, а на update выдаёт 403 Forbidden. такое бывает только, если приложение embedded (встроенно в другую страничку с помощью iframe). если standalone, тогда всё норм. смотрел куки, на update и на retrieve они одинаковые. но retrieve выдаёт 403. как такое может быть?
источник

DO

D. Ouhh in Django [ru] #STAY HOME
D. Ouhh
class ShopRetrieveUpdateView(generics.RetrieveUpdateAPIView):
   permission_classes = (IsAuthenticated,)
   serializer_class = ShopSerializer

   def perform_authentication(self, request):
       import pdb; pdb.set_trace()
       super().perform_authentication(request)

   def update(self, request, *args, **kwargs):
       serializer = self.serializer_class(request.user, data=request.data, partial=True)
       serializer.is_valid(raise_exception=True)
       serializer.save()
       return Response(serializer.data, status=status.HTTP_200_OK)

   def retrieve(self, request, *args, **kwargs):
       serializer = self.serializer_class(request.user)
       return Response(serializer.data)

есть такая вьюшка. на retrieve всё работает нормально, а на update выдаёт 403 Forbidden. такое бывает только, если приложение embedded (встроенно в другую страничку с помощью iframe). если standalone, тогда всё норм. смотрел куки, на update и на retrieve они одинаковые. но retrieve выдаёт 403. как такое может быть?
это может быть связано с csrf?
источник

DO

D. Ouhh in Django [ru] #STAY HOME
D. Ouhh
class ShopRetrieveUpdateView(generics.RetrieveUpdateAPIView):
   permission_classes = (IsAuthenticated,)
   serializer_class = ShopSerializer

   def perform_authentication(self, request):
       import pdb; pdb.set_trace()
       super().perform_authentication(request)

   def update(self, request, *args, **kwargs):
       serializer = self.serializer_class(request.user, data=request.data, partial=True)
       serializer.is_valid(raise_exception=True)
       serializer.save()
       return Response(serializer.data, status=status.HTTP_200_OK)

   def retrieve(self, request, *args, **kwargs):
       serializer = self.serializer_class(request.user)
       return Response(serializer.data)

есть такая вьюшка. на retrieve всё работает нормально, а на update выдаёт 403 Forbidden. такое бывает только, если приложение embedded (встроенно в другую страничку с помощью iframe). если standalone, тогда всё норм. смотрел куки, на update и на retrieve они одинаковые. но retrieve выдаёт 403. как такое может быть?
также и с другими вьюшками, PUT выдаёт 403
источник

S

Shodmon in Django [ru] #STAY HOME
D. Ouhh
также и с другими вьюшками, PUT выдаёт 403
В порядке проверки, можешь вырубить иксфрейм мидлваре и пробовать
источник

DO

D. Ouhh in Django [ru] #STAY HOME
Shodmon
В порядке проверки, можешь вырубить иксфрейм мидлваре и пробовать
django.template.response.ContentNotRenderedError: The response content must be rendered before it can be accessed.
внутри ошибки
источник

DO

D. Ouhh in Django [ru] #STAY HOME
Shodmon
В порядке проверки, можешь вырубить иксфрейм мидлваре и пробовать
он уже выключен
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
D. Ouhh
это может быть связано с csrf?
нет, не работает оно для дрф по дефолту, а можешь код все же на дпаст, читать не удобно, я вот перед сериалайзе из валид иф не вижу
источник

DO

D. Ouhh in Django [ru] #STAY HOME
Nikolay Cherniy
нет, не работает оно для дрф по дефолту, а можешь код все же на дпаст, читать не удобно, я вот перед сериалайзе из валид иф не вижу
секунду
источник

DO

D. Ouhh in Django [ru] #STAY HOME
Nikolay Cherniy
нет, не работает оно для дрф по дефолту, а можешь код все же на дпаст, читать не удобно, я вот перед сериалайзе из валид иф не вижу
источник

DO

D. Ouhh in Django [ru] #STAY HOME
Nikolay Cherniy
нет, не работает оно для дрф по дефолту, а можешь код все же на дпаст, читать не удобно, я вот перед сериалайзе из валид иф не вижу
(Pdb) p exc
PermissionDenied('CSRF Failed: CSRF cookie not set.',)

я словил.
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
D. Ouhh
(Pdb) p exc
PermissionDenied('CSRF Failed: CSRF cookie not set.',)

я словил.
так, я не прав, не работает на тестовом клиенте только
источник

DO

D. Ouhh in Django [ru] #STAY HOME
Nikolay Cherniy
так, я не прав, не работает на тестовом клиенте только
то, что приложение в iframe мешает как-то использовать csrf_token?
источник

yh

yasya huyase in Django [ru] #STAY HOME
вписал свойство prefix_default_languag=False  в корневой урл, но теперь такая проблема:
захожу на сайт, язык стоит дефолтный, префикса нет
после переключаю язык - все работает
но при всех последующих попытках переключить язык, редиректит на этот же язык
и фиксится только если профисать или убрать языковой преффикс из урла руками
источник

AF

Anton Fircak in Django [ru] #STAY HOME
ребят подскажите плз, а как одновременно поднимают на 1 комп nginx для джанги и реакта с разными дом именами но на порт 80 и то и то
источник

S

Shodmon in Django [ru] #STAY HOME
D. Ouhh
то, что приложение в iframe мешает как-то использовать csrf_token?
источник

DO

D. Ouhh in Django [ru] #STAY HOME
а нужен доступ к родительским куки?
источник

DO

D. Ouhh in Django [ru] #STAY HOME
я смотрю в firefox dev tools storage. там куки на csrftoken есть
источник