
Ромашов
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
Ну типо в зависимости от того, авторизован показать такой то контент, если не авторизован то показать другой контент

Ромашов
11.05.2018
09:58:31

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

Mike
11.05.2018
09:59:58

Ромашов
11.05.2018
10:01:15

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 клиент — фк

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

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

Alexandra
11.05.2018
11:28:35

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)

Alexandra
11.05.2018
11:30:58

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
он обращается к абстрактному, видимо
а там такого поля нет

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

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