@pydjango

Страница 1248 из 1273
Ромашов
11.05.2018
09:50:37
получаю пикрил конекчусь к бд, пишу \dt No relations found. В чем может быть проблема?

Mike
11.05.2018
09:50:55
Как в DRF проверять пользователя на аутентификацию ? или может просто в браузер в localstorage записывать True при автризации , а при логоуте записывать False. Или это фигня полная?

Ромашов
11.05.2018
09:52:14
http://www.django-rest-framework.org/api-guide/authentication/#tokenauthentication

Google
Mike
11.05.2018
09:56:58
в дрф есть токен аутентификация и сессионная, токен аутентифицирует каждый запрос
У меня уже сделан вход с JWT_AUTH. Я просто не понимаю как проверять его

Ну типо в зависимости от того, авторизован показать такой то контент, если не авторизован то показать другой контент

Ромашов
11.05.2018
09:58:31
У меня уже сделан вход с JWT_AUTH. Я просто не понимаю как проверять его
В настройках поставить можно глобально, что все запросы должны быть аутентифицированны токеном, или каждую вью отдельно

Dan
11.05.2018
09:58:40
мне кажется проще всего пинговать бэк для получения данных пользователя

Mike
11.05.2018
09:59:58
мне кажется проще всего пинговать бэк для получения данных пользователя
я так и подумал, но ведь лишняя нагрузка, или пофиг ?

Ромашов
11.05.2018
10:01:15
Ну типо в зависимости от того, авторизован показать такой то контент, если не авторизован то показать другой контент
Неавторизованный реквест возвращает 401, можно на клиенте хендлить и показывать что надо

Dan
11.05.2018
10:02:36
я так и подумал, но ведь лишняя нагрузка, или пофиг ?
за то надежно на сколько я понял у тебя что то вроде реакта в таком случае запрос на бек будет уходить только при перезагрузке страницы между переходами обращений не будет

Mike
11.05.2018
10:03:59
Понятно. Спасибо ребята!

Alexandra
11.05.2018
10:57:54
Ребят, а помогите мне снова, пожалуйста. У меня есть модель клиента, у которого есть симптомы. Каждый симптом содержит информацию, инфа лежит в моделях по отдельности. Я написала сериалайзер для каждой из модели и запихнула в "главный" сериалайзер, но проблема в том, что он отображает только один из симптомов, и я не знаю, как это исправить. Сейчас пришлю пастебин

Dan
11.05.2018
10:58:44
пологаю что симтомы m2m

Alexandra
11.05.2018
10:58:55
Dan
11.05.2018
10:59:08
many=True указан ?

Alexandra
11.05.2018
10:59:23
тогда не пропускает вообще ничего

Google
Dan
11.05.2018
10:59:48
показывай посмотрим =)

Alexandra
11.05.2018
10:59:50
https://pastebin.com/vrQFSfqF

вот :)

может, мне еще надо структуру ответа подправить, хз

Dan
11.05.2018
11:02:36
ну ты получается запрашиваешь один сиптом судя по коду

Alexandra
11.05.2018
11:03:29
ну ты получается запрашиваешь один сиптом судя по коду
да, и я не могу понять, как мне получить все

Dan
11.05.2018
11:04:05
получать через ListApiView скорее всего

Alexandra
11.05.2018
11:04:07
и, кстати, в модели СlientSymptom клиент — фк

получать через ListApiView скорее всего
и тогда мне вываливает всех юзеров со всеми симптомами

Dan
11.05.2018
11:04:41
фильтруй по клиенту

Alexandra
11.05.2018
11:05:04
вроде же фильтрую, нет?

Dan
11.05.2018
11:05:22
по коду не понятно

Alexandra
11.05.2018
11:05:53
по коду не понятно
а где этот фильтр должен происходить? во вью или в сериалайзере?

Dan
11.05.2018
11:06:08
по сути ты говоришь выдай одну запись из таблицы ClientSymptom

во вью

если просто то ты делаешь запрос /?client_id={ID} делаешь выборку q = ClientSymptom.objects.filter(client=request.GET.get('client_id')) и возвращаешь ClientSymptomSerializer(q, many=True).data

Alexandra
11.05.2018
11:10:25
ага, поняла

спасибо!

Dan
11.05.2018
11:10:27
если сложнее то есть пакет https://github.com/carltongibson/django-filter в по нему создаешь клас фильтра где он будет принимать get параметры и фильтровать выдачу

как код организовать надо смотреть от всего

Google
Dan
11.05.2018
11:11:54
и по теории client надо убрать из ClientSymptomSerializer а то будет много дубоирующейся информации

Alexandra
11.05.2018
11:12:41
угум, буду смотреть

Andrey
11.05.2018
11:15:52
пологаю что симтомы m2m
кстати, и нету там m2m

Alexandra
11.05.2018
11:16:24
Andrey
11.05.2018
11:16:35
ну это m2o

Alexandra
11.05.2018
11:23:12
def get_queryset(self): user = self.request.user return ClientSymptom.objects.filter(client=user)

нашла такое

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

Bogdan
11.05.2018
11:24:38
клиент и юзер как связаны?

Alexandra
11.05.2018
11:25:57
клиент и юзер как связаны?
ну юзера ж я только что объявила, а клиент — из модели

class ClientSymptom(models.Model): created_at = models.DateTimeField(verbose_name=_('Created at'), default=timezone.now) client = models.ForeignKey(Client, on_delete=models.CASCADE, verbose_name=_('Client'), related_name='client_symptoms') body_function = models.ForeignKey(BodyFunction, on_delete=models.CASCADE, verbose_name=_('Body function'), related_name='client_symptoms', blank=True, null=True) body_structure = models.ForeignKey(BodyStructure, on_delete=models.CASCADE, verbose_name=_('Body structure'), related_name='client_symptoms', blank=True, null=True) severity_level = models.ForeignKey(SeverityLevel, on_delete=models.CASCADE, verbose_name=_('Severity level'), related_name='client_symptoms', blank=True, null=True) body_location = models.ForeignKey(LocationOfImpairment, on_delete=models.CASCADE, verbose_name=_('Location of impairment'), related_name='client_symptoms', blank=True, null=True) nature_of_impairment = models.ForeignKey(NatureOfImpairment, on_delete=models.CASCADE, verbose_name=_('Nature of impairment'), related_name='client_symptoms', blank=True, null=True)

Bogdan
11.05.2018
11:26:53
self.request.user - это инстанс AUTH_USER_MODEL (auth.User) по умолч. А фильтр ждет инстанс Client

Dan
11.05.2018
11:27:17
модель клинта покажи

Bogdan
11.05.2018
11:27:33
это не читабельно из приложения

serbernar
11.05.2018
11:27:36
нипаказю

Alexandra
11.05.2018
11:28:25
https://pastebin.com/1beN0cwV

serbernar
11.05.2018
11:28:27
Google
Dan
11.05.2018
11:29:52
def get_queryset(self): user = self.request.user return ClientSymptom.objects.filter(client=user.clients_user)

serbernar
11.05.2018
11:30:24
ну привет
created_at = models.DateTimeField(verbose_name=_('Date created'), auto_now_add=True)

Dan
11.05.2018
11:31:14
clientS_user

я свой код поправил

Bogdan
11.05.2018
11:31:55
ага, и ед число логичней

Alexandra
11.05.2018
11:32:14
ну это не мое все, писали до меня

Dan
11.05.2018
11:32:15
логичнее users_client =)

Alexandra
11.05.2018
11:32:23
логичнее да, но все равно не работает

User has no clients_user.

Dan
11.05.2018
11:33:17
у тебя у Client related_name = 'clients_user'

Alexandra
11.05.2018
11:33:37
у тебя у Client related_name = 'clients_user'
я видела, да, но по нему не выходит фильтровать

он обращается к абстрактному, видимо

а там такого поля нет

Dan
11.05.2018
11:35:33
в смысле ?

Alexandra
11.05.2018
11:36:40
ну в смысле он ругается, что у User нет clients_user

и хз почему он к нему не видитт отношения

Dan
11.05.2018
11:37:24
у твоего текущего пользователя есть соответствующая запись в client ?

Alexandra
11.05.2018
11:37:56
ну да

Dan
11.05.2018
11:38:00
точно ?

Google
Alexandra
11.05.2018
11:38:11
подскажи, как это проверить?)

Dan
11.05.2018
11:38:35
print(Client.objects.filter(user=request.user))

Alexandra
11.05.2018
11:40:29
пустой кверисет возвращает

Dan
11.05.2018
11:40:41
поэтому и ругается =)

serbernar
11.05.2018
11:40:55
подскажи, как это проверить?)
import logging log = logging.getLogger(__name__) log.info('hello')

Alexandra
11.05.2018
11:42:15
Dan
11.05.2018
11:42:32
почему ? =)

Alexandra
11.05.2018
11:46:14
так, окей, клаентс_юзер есть не у всех

момент другой, а можно просто по pk фильтрануть и все?

Dan
11.05.2018
11:46:47
кого ?

Alexandra
11.05.2018
11:47:10
клиентов

если такой-то клиент, лист симптомов

Dan
11.05.2018
11:47:32
можно конечно

Alexandra
11.05.2018
11:47:39
потому что по клаентс_юзер это не то, что надо

serbernar
11.05.2018
11:48:20
;DD

Alexandra
11.05.2018
11:48:21
я не совсем понимаю, какой мне фильтр для этого нужен тут

Dan
11.05.2018
11:48:22
потому что по клаентс_юзер это не то, что надо
это получение объекта клиента текущего пользователя

сначала тебе нужно получить объект или id клиента

Alexandra
11.05.2018
11:48:59
;DD
не смейся, я зато в алгоритмы могу(

serbernar
11.05.2018
11:49:18
не смейся, я зато в алгоритмы могу(
пузырьковая сортировка?

Dan
11.05.2018
11:49:23

Страница 1248 из 1273