Size: a a a

Django [ru] #STAY HOME

2020 June 02

DT

Dan Tyan in Django [ru] #STAY HOME
Max Tuh
Просто хочу в js подставлять кондевой адресс сайта по типу "www.tort.ru"
ну эт понятно
сам так делаю
источник

J

Juan in Django [ru] #STAY HOME
Господа, подскажите пожалуйста.
Почему serializers.ValidationError при любом переданном сообщении, оно его помещает в {“nonFieldErrors”: [custom_error_measage]}?
источник

MT

Max Tuh in Django [ru] #STAY HOME
Dan Tyan
ну эт понятно
сам так делаю
Пытаюсь сделать подсветку выбранного пункта меню в шапке сайта
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Juan
Господа, подскажите пожалуйста.
Почему serializers.ValidationError при любом переданном сообщении, оно его помещает в {“nonFieldErrors”: [custom_error_measage]}?
сам ошибку райзишь ?
источник

J

Juan in Django [ru] #STAY HOME
Dan Tyan
сам ошибку райзишь ?
Да. raise serializers.ValidationError. И всегда получаю nonFieldErrors, в котором уже мое сообщение
источник

D

Danil in Django [ru] #STAY HOME
Как тестировать подобные action запросы?
@action(detail=True, methods=['post'], serializer_class=UrlLogSerializer)
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Juan
Да. raise serializers.ValidationError. И всегда получаю nonFieldErrors, в котором уже мое сообщение
код покажи
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Danil
Как тестировать подобные action запросы?
@action(detail=True, methods=['post'], serializer_class=UrlLogSerializer)
делаешь запрос как обычно
источник

DT

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

D

Danil in Django [ru] #STAY HOME
Интересует как сделать это с помощью ApiRequestFactory, чет такое пробую но оно кидает на обычный запрос
def test_create_url(self):
       user_session = mixer.blend('tracker.UserSession', email='test@gmail.com')
       kwargs = {'session_id': str(user_session.session_id)}


       rf = APIRequestFactory()
       request = rf.post(f"/api/session/{kwargs['session_id']}/click_url/")
       response = UserSessionViewSet.as_view({'post': 'create'})(request, **kwargs)

       print(response.data)
       print(response.url)
       assert response.status_code == 200
источник

D

Danil in Django [ru] #STAY HOME
А вот что необходимо протестировать:
@action(detail=True, methods=['post'], serializer_class=UrlLogSerializer)
   def click_url(self, request, *args, **kwargs):
       instance = UrlLog(user_session=self.get_object())
       serializer = self.get_serializer(instance, data=request.data)
       serializer.is_valid(raise_exception=True)
       serializer.save()
       return Response(serializer.data)
источник

J

Juan in Django [ru] #STAY HOME
Dan Tyan
код покажи
def validate(self, attrs):
   try:
       if not User.objects.get(email=attrs['email']).is_active:
           raise serializers.ValidationError({'error': 'error message'})
   except Exception as e:
       raise serializers.ValidationError(e)
   return super().validate(attrs)


сам класс наследуется от TokenObtainPairSerializer - simplejwt
источник

DT

Dan Tyan in Django [ru] #STAY HOME
raise serializers.ValidationError({'error': 'error message'})

тут
вместо error указываешь имя поля
источник

I

Ivan in Django [ru] #STAY HOME
Как добавить кастомный метод для queryset, сделал менеджер для модели. Получается MyModel.objects.my_method() все ок, а  MyModel.objects.filter(...).my_method() 'QuerySet' object has no attribute 'my_method'
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Danil
Интересует как сделать это с помощью ApiRequestFactory, чет такое пробую но оно кидает на обычный запрос
def test_create_url(self):
       user_session = mixer.blend('tracker.UserSession', email='test@gmail.com')
       kwargs = {'session_id': str(user_session.session_id)}


       rf = APIRequestFactory()
       request = rf.post(f"/api/session/{kwargs['session_id']}/click_url/")
       response = UserSessionViewSet.as_view({'post': 'create'})(request, **kwargs)

       print(response.data)
       print(response.url)
       assert response.status_code == 200
а почему не используешь встроеный клиент?
источник

D

Danil in Django [ru] #STAY HOME
Этим удобнее и уже все тесты на этом написаны
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Danil
Этим удобнее и уже все тесты на этом написаны
так что не работает ?
источник

D

Danil in Django [ru] #STAY HOME
Dan Tyan
так что не работает ?
Оно не на ту страницу запрос шлёт, просто на /api/session/,
вместо /api/session/<session_id>/click_url/
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Danil
Оно не на ту страницу запрос шлёт, просто на /api/session/,
вместо /api/session/<session_id>/click_url/
.as_view({'post': 'create'}) так ты же это вызываешь ?
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Ivan
Как добавить кастомный метод для queryset, сделал менеджер для модели. Получается MyModel.objects.my_method() все ок, а  MyModel.objects.filter(...).my_method() 'QuerySet' object has no attribute 'my_method'
enable_for_download это что ?
источник