А как сделать чтоб сериализатор не пропускал не корректное значение?

|
ptjn12 2022-07-02 08:54:04
arttomaz 2022-07-02 08:51:01
REST нужен если у тебя свой апи

Я тогда по идее должен будут отдавать httpresponse а в нем json?

arttomaz 2022-07-02 09:04:19
ptjn12 2022-07-02 08:54:04
Я тогда по идее должен будут отдавать httpresponse а в нем json?

Да

ptjn12 2022-07-02 09:04:40
arttomaz 2022-07-02 09:04:19
Да

Спасибо за помощь, родной 💪

ExcellentProgrammer 2022-07-02 09:14:56
привет всем
ExcellentProgrammer 2022-07-02 09:15:49
файл, загруженный в таблицу из панели администратора django, должен быть сохранен путем переименования. не знаю как реализовать
nonverbis 2022-07-02 09:19:38
ExcellentProgrammer 2022-07-02 09:15:49
файл, загруженный в таблицу из панели администратора django, должен быть сохранен путем переименования. не знаю как реализовать

upload_to

https://docs.djangoproject.com/en/4.0/ref/models/fields/#django.db.models.FileField.upload_to

файл, загруженный в таблицу путем переименования — чудеса в решете. ты подумай над своим поведением.

Максим 2022-07-02 11:05:42
в ModelViewSet обновляю запись таким образом. нужно чтобы сериализатор не пропускал недопустимое значение role (на выбор три значения)
def perform_update(self, serializer):
user = get_object_or_404(CustomUser, username=self.kwargs.get(‘username’))
role = self.request.data.get(‘role’) or user.role
serializer.is_valid(raise_exception=True)
serializer.save(role=role)
в сериализаторе поле role задаю так
role = serializers.ChoiceField(default=’user’, choices=ROLES, read_only=True, required=False)
но при сохранении записи с неверной ролью все проходит. как исправить чтоб не проходило?
brodskij 2022-07-02 11:12:26
Максим 2022-07-02 11:05:42
в ModelViewSet обновляю запись таким образом. нужно чтобы сериализатор не пропускал недопустимое значение role (на выбор три значения)
def perform_update(self, serializer):
user = get_object_or_404(CustomUser, username=self.kwargs.get(‘username’))
role = self.request.data.get(‘role’) or user.role
serializer.is_valid(raise_exception=True)
serializer.save(role=role)
в сериализаторе поле role задаю так
role = serializers.ChoiceField(default=’user’, choices=ROLES, read_only=True, required=False)
но при сохранении записи с неверной ролью все проходит. как исправить чтоб не проходило?

А что is_valid выводит?

daniilka_dadada 2022-07-02 11:14:50
brodskij 2022-07-02 11:12:26
А что is_valid выводит?

это если данные валидны вроде

Максим 2022-07-02 11:16:18
brodskij 2022-07-02 11:12:26
А что is_valid выводит?

ничего. возможно дело в том что сериализатор не проверяет поле role т.к. оно read_only а сразу сохраняет его. как можно в def perform_update закинуть в сериализатор поле role на проверку?

guradu 2022-07-02 11:16:39
Всем привет кто подсказать стоит ли покупать курсы fullstack-python от нетологии
NikolayCherniy 2022-07-02 11:21:02
Максим 2022-07-02 11:05:42
в ModelViewSet обновляю запись таким образом. нужно чтобы сериализатор не пропускал недопустимое значение role (на выбор три значения)
def perform_update(self, serializer):
user = get_object_or_404(CustomUser, username=self.kwargs.get(‘username’))
role = self.request.data.get(‘role’) or user.role
serializer.is_valid(raise_exception=True)
serializer.save(role=role)
в сериализаторе поле role задаю так
role = serializers.ChoiceField(default=’user’, choices=ROLES, read_only=True, required=False)
но при сохранении записи с неверной ролью все проходит. как исправить чтоб не проходило?

эм, ну ты сам достаешь роль из пришедших данных и сам ее прокидываешь в save сериализатора

NikolayCherniy 2022-07-02 11:23:31
@DevilsServant пиратство тут не приветствуется
Максим 2022-07-02 11:24:05
NikolayCherniy 2022-07-02 11:21:02
эм, ну ты сам достаешь роль из пришедших данных и сам ее прокидываешь в save сериализатора

а как сделать чтоб сериализатор не пропускал не корректное значение? в данном случае

brodskij 2022-07-02 11:24:33
jopaboga 2022-07-02 01:58:23

Вообще можно в modelchoicefield прокинуть кверисет с select/prefetch related. Но хз, твой ли это кейс. Нужно разбираться.
Можешь шаблон показать?

NikolayCherniy 2022-07-02 11:24:49
Максим 2022-07-02 11:24:05
а как сделать чтоб сериализатор не пропускал не корректное значение? в данном случае

ну пропускать поле через сериализатор, а не прокидывать его сразу в save, там оно просто считается провалидированным значением

DevilsServant 2022-07-02 11:26:15
NikolayCherniy 2022-07-02 11:23:31
@DevilsServant пиратство тут не приветствуется

ни в коем случае, просто отзывы очень часто купленные, содержание не посмотреть, а стоимость этих курсов приличная всё-таки

Максим 2022-07-02 11:26:45
NikolayCherniy 2022-07-02 11:24:49
ну пропускать поле через сериализатор, а не прокидывать его сразу в save, там оно просто считается провалидированным значением

в функции perform_update(self, serializer) как это сделать не переопределяя serializer? или выход только к примеру такой serializer=CustomUserSerializer(data=self.request.data)

DevilsServant 2022-07-02 11:26:49
написать то могут что угодно, а вот качество материала не оценить до покупки
brodskij 2022-07-02 11:27:26
Максим 2022-07-02 11:26:45
в функции perform_update(self, serializer) как это сделать не переопределяя serializer? или выход только к примеру такой serializer=CustomUserSerializer(data=self.request.data)

А почему ты используешь перформ апдейт?

NikolayCherniy 2022-07-02 11:27:36
DevilsServant 2022-07-02 11:26:15
ни в коем случае, просто отзывы очень часто купленные, содержание не посмотреть, а стоимость этих курсов приличная всё-таки

ну можно просто написать, что по твоему мнению отзывы купленные, ну и желательно предложить альтернативу =) а призывать к пиратству не стоит)

DevilsServant 2022-07-02 11:28:12
NikolayCherniy 2022-07-02 11:27:36
ну можно просто написать, что по твоему мнению отзывы купленные, ну и желательно предложить альтернативу =) а призывать к пиратству не стоит)

ну, приношу извинения тогда)

Максим 2022-07-02 11:28:25
brodskij 2022-07-02 11:27:26
А почему ты используешь перформ апдейт?

мне показалось что более удобно на этом этапе переопределить данные при сохрании patch методом. или как лучше сделать?

brodskij 2022-07-02 11:29:09
Максим 2022-07-02 11:28:25
мне показалось что более удобно на этом этапе переопределить данные при сохрании patch методом. или как лучше сделать?

В апдейт нормально сделать, с флагом partial=True, если это патч

brodskij 2022-07-02 11:29:46
brodskij 2022-07-02 11:29:09
В апдейт нормально сделать, с флагом partial=True, если это патч

Насколько я помню,перформ в основном нужен как раз когда нужно что-то докинуть в сейв, минуя валидацию

motionrus 2022-07-02 12:48:43
пытают сделать сортировку с помощью drf, в модели у меня есть динамические property поля, могу ли я по ним сортироваться, сейчас получаю ошибку что этого поля как-будто нет
NikolayCherniy 2022-07-02 13:07:26
motionrus 2022-07-02 12:48:43
пытают сделать сортировку с помощью drf, в модели у меня есть динамические property поля, могу ли я по ним сортироваться, сейчас получаю ошибку что этого поля как-будто нет

Нельзя. Можно перенести логику из property в annotate запроса и сортировать по нему

motionrus 2022-07-02 13:09:37
NikolayCherniy 2022-07-02 13:07:26
Нельзя. Можно перенести логику из property в annotate запроса и сортировать по нему

https://stackoverflow.com/questions/8478494/ordering-django-queryset-by-a-property
а вот так можно сделать? или есть лучше способ?

Ordering Django queryset by a @propertyStack Overflow
I’m trying to order a query set by a property I defined in the model, but not sure the best way to do this. Here’s the property:

@property
def name(self):
if self.custom_name:
return s…

NikolayCherniy 2022-07-02 13:12:20
motionrus 2022-07-02 13:09:37
https://stackoverflow.com/questions/8478494/ordering-django-queryset-by-a-property
а вот так можно сделать? или есть лучше способ?

Так это как? Там не один ответ

motionrus 2022-07-02 13:12:52
NikolayCherniy 2022-07-02 13:12:20
Так это как? Там не один ответ

тот который помечен как правильный sorted(Thing.objects.all(), key=lambda t: t.name)

NikolayCherniy 2022-07-02 13:13:10
motionrus 2022-07-02 13:12:52
тот который помечен как правильный sorted(Thing.objects.all(), key=lambda t: t.name)

это очень плохой вариант

NikolayCherniy 2022-07-02 13:14:55
в этом случае лучше было бы .order_by(Coalesce(«custom_name», «module_object__name))
mark_re_mark 2022-07-02 13:27:30
pydjango-738661.jpg
ребятки, привет, кто сталкивался? Не подключается к css через статику
m3lnikov 2022-07-02 13:30:13
mark_re_mark 2022-07-02 13:27:30
ребятки, привет, кто сталкивался? Не подключается к css через статику

дебаг или продакт ?

mark_re_mark 2022-07-02 14:12:18
m3lnikov 2022-07-02 13:30:13
дебаг или продакт ?

Спасибо, исправил

lakertyt 2022-07-02 14:33:37
подскажите пж, где можно бюджетно захостить джанго приложение
m3lnikov 2022-07-02 14:35:00
lakertyt 2022-07-02 14:33:37
подскажите пж, где можно бюджетно захостить джанго приложение

vds.selectel.ru

lakertyt 2022-07-02 14:43:32
m3lnikov 2022-07-02 14:35:00
vds.selectel.ru

это только для граждан россии

m3lnikov 2022-07-02 14:43:54
lakertyt 2022-07-02 14:43:32
это только для граждан россии

Там ппрям так и написано ?

brodskij 2022-07-02 14:44:50
m3lnikov 2022-07-02 14:35:00
vds.selectel.ru

kimsufi

Stan 2022-07-02 14:44:52
lakertyt 2022-07-02 14:33:37
подскажите пж, где можно бюджетно захостить джанго приложение

Купи такой же сервак у нас

Stan 2022-07-02 14:45:03
В смысле в Украине
m3lnikov 2022-07-02 14:46:07
https://www.digitalocean.com/products/droplets

Как вариант тут еще.

Droplets | DigitalOcean’s Scalable Virtual MachinesDigitalocean
DigitalOcean Droplets are simple, scalable virtual machines. Spin up Basic, General Purpose, Memory-, or CPU-Optimized VMs in 55 seconds.
lakertyt 2022-07-02 14:47:02
m3lnikov 2022-07-02 14:43:54
Там ппрям так и написано ?

там при регистрации только россия есть

m3lnikov 2022-07-02 14:47:22
lakertyt 2022-07-02 14:47:02
там при регистрации только россия есть

пичаль. Так то лучшее что есть в РФ, за 200 рублей то.

lakertyt 2022-07-02 14:47:50
так за 200 руб только html с js
lakertyt 2022-07-02 14:48:00
я уже пробывал
m3lnikov 2022-07-02 14:48:02
lakertyt 2022-07-02 14:47:50
так за 200 руб только html с js

нет, у меня там было порядка 4 проекторвл на дешевом хосте

lakertyt 2022-07-02 14:48:14
там суперпользователь не доступен будет
m3lnikov 2022-07-02 14:48:38
lakertyt 2022-07-02 14:48:14
там суперпользователь не доступен будет

все там есть, это обычный VDS , виртуалка с OS , это не хостинг именно для HTML

|