
Bogdan
11.04.2018
12:57:47
подскажите
'allauth',
'allauth.account',
'rest_auth',
'rest_auth.registration'так подключены приложения. откуда лезет модель SocialAccount, если allauth.socialaccount не подключен? я его хочу сам определить и из-за коробочного возникает каша:
Reverse accessor for 'SocialAccount.user' clashes with reverse accessor for 'SocialAccount.user'.

PaCifiC
11.04.2018
14:27:40
есть следующий запрос POST /question/ который принимает этот json {
"name": "",
"answer1": null,
"answer2": null,
"answer3": null,
"answer4": null,
"answer5": null
} Как я могу в логике сделать запрос чтобы добавить данные? Знаю что с reverse, не пойму как конкретно реализовать

Dan
11.04.2018
14:28:44
я бы ансвер в массив загнал =)
{
name: ''
answers: [
null, null, null
]
}

Google

Dan
11.04.2018
14:31:24

Suren
11.04.2018
15:46:48
Привет
Хочу хранить некий кэш на стороне сервера. Так понимаю, это можно делать в сессии.
Сделал класс с кэшем и необходимыми мне методами, но джанга ругается, что не JSON serializable. Каким способом лучше это сделать? объявить у объекта метод __dict__? А как будет потом возвращаться к виду объекта?
пока нашел вот это, но не пойму пока, как использовать правильно их энкодер
https://docs.djangoproject.com/en/2.0/topics/serialization/#serialization-formats-json
или есть более корректные способы хранить кэш?

Николай
11.04.2018
15:48:12
Ну можно в json сделать и хранить в кэше
Или же сохранить модельку в памяти, не помню точно название

Dan
11.04.2018
15:48:33
хранить данные модели в сесии думаю не лучшее решение

Suren
11.04.2018
15:48:40

Dan
11.04.2018
15:49:13
да про это

Николай
11.04.2018
15:50:03
Json.dumps()

Dan
11.04.2018
15:50:09
просто то что ты прислал это сериализатор объектов модели

Suren
11.04.2018
15:51:21
Json.dumps()
так я про то, что мой объект не сериализируемый
вот и спрашиваю, как правильно сделать его таковым (по сути, нужные данные сериализовать как нечего делать)
я могу, конечно, хранить в сессии словарики с этими данными, а по надобности инициалихировать из них объект и работать с ним, но уверен, что есть корректный способ сделать объект сериализируемым

Николай
11.04.2018
15:52:02
В словарь и json

Google

Suren
11.04.2018
15:52:08

Николай
11.04.2018
15:52:14
Это 1 из вариантов
А про сериализацию я мало знаю, сам бы почитал

Dan
11.04.2018
15:53:15
кешируемые данные только для одного пользователя ?
или для всех ?

Suren
11.04.2018
15:53:37

Dan
11.04.2018
15:53:58
объем большой ?

Suren
11.04.2018
15:54:12
нет, три сета по 10-20 айтемов
там скорее дело в самих методах класса)
повторюсь, мне не сложно сделать у класса методы загрузки из словаря и обратно в него
или вообще методы отдельно вынести и работать так
просто стало интересно, как правильно сделать объект сериализируемым

Dan
11.04.2018
15:57:17
думаю правильнее описывать руками

Suren
11.04.2018
15:58:06
окей, тогда сделаю ему методы типа dump и load

Николай
11.04.2018
16:00:34
@dantyan где про сериализацию почитать, сталкивался а не знал что делать
Не знаешь?

Dan
11.04.2018
16:02:26
честно говоря не знаю
для сериализации моделей
можно прикрутить drf

Suren
11.04.2018
16:03:11

Dude
11.04.2018
16:06:47
авторизованы 3 пользователя, каким менеджером возможно выводить информацию из модели о конкретном пользователе, который делает запрос?

Dan
11.04.2018
16:07:58
вопрос не совсем понятен

Dude
11.04.2018
16:09:31
ммм, сейчас по другому попробую сделать.

Google

Dude
11.04.2018
16:11:37
https://dpaste.de/vB1U
Как мне в другой аппе например вызвать функцию у этой модели, чтобы были отданы данные именно по пользователю, который сделал запрос. Я так понимаю она вернет мне вообще все
или мне в request передавать его имя и чекать по этому параметру ?

Dan
11.04.2018
16:14:36
"другой аппе" это совсем не джанго ?
и как она обращается к джанго ?

Dude
11.04.2018
16:15:22
другая аппа тоже джанга

Dan
11.04.2018
16:15:46
эта же или стоит отдельно ?
к твоей как обращается ?

Dude
11.04.2018
16:16:06
from users.models import User
вот так например
мне во вьюхе другого апликейшна надо вызвать функцию модели

Dan
11.04.2018
16:17:05
у тебя в запросе
если пользователь авторизован
уже есть объект пользователя

Dude
11.04.2018
16:17:47
я могу вывести из запроса инфу о пользователе ?О_о

Dan
11.04.2018
16:18:26
ты можешь делать request.user
если в модели User есть метод some_method
то можешь вызывать request.user.some_method()
да
я тебе об чем и говорю говорю

Dude
11.04.2018
16:19:02
Понял, спасибо
def mgid_api(request):
mgid = Mgid(request.user.return_token_idauth()[0], request.user.return_token_idauth()[1] ) Мне пизды за такой код не дадут ?

Dan
11.04.2018
16:22:53
дадут

Dude
11.04.2018
16:23:21
вынести аргументы в переменные ?

Dan
11.04.2018
16:24:26
кстати можно делать так
pair = [self.mgid_token, self.mgid_idauth]
return pair

Google

Dan
11.04.2018
16:24:38
return self.mgid_token, self.mgid_idauth
он правда вернет не массив а кортеж

Lazoreth
11.04.2018
16:25:32
Блин. Как в форме вытащить аттрибут обьекта?

Dan
11.04.2018
16:25:46
во вторых
можно сделать
@property
def return_token_idauth(self):

Lazoreth
11.04.2018
16:25:48
А, через str обьекта наверное

Dude
11.04.2018
16:26:29

Dan
11.04.2018
16:27:03
def mgid_api(request):
if request.user.is_authenticated:
mgid = Mgid(request.user.return_token_idauth[0], request.user.return_token_idauth[1] )
ну и по хорошему бы да вынести в переменную

Lazoreth
11.04.2018
16:27:50
class CarListForm(forms.ModelForm):
choices = {"На обслуживании": True,
"Не обслуживается": False}
owner = forms.ModelChoiceField(queryset=Client.objects.all(), widget=forms.HiddenInput)
auto = forms.ModelChoiceField(queryset=Auto.objects.all())
sim = forms.ModelChoiceField(queryset=Sim.objects.all(), widget=forms.HiddenInput)
controller = forms.ModelChoiceField(queryset=Controller.objects.all(), widget=forms.HiddenInput)
#billingform = forms.ChoiceField(choices=choices)
class Meta:
model = Car
fields = ['owner', 'auto', 'sim', 'controller', 'billingstate']
ClientCarsForm = modelformset_factory(Car, form=CarListForm)

Dude
11.04.2018
16:27:58
да у меня там декортаор логин реквайр

Lazoreth
11.04.2018
16:28:07
https://i.imgur.com/oibF2eU.png Как сделать что бы можно было отобразить без выбора?

Dan
11.04.2018
16:28:15

Lazoreth
11.04.2018
16:29:37

Dan
11.04.2018
16:30:09
зачем делать селект и его скрывать
почему не сразу в HiddenField
owner = forms.ModelChoiceField(queryset=Client.objects.all(), widget=forms.HiddenInput)

Lazoreth
11.04.2018
16:30:15
Я сделал формфактори что бы можно было состояние на нескольких обьектах менять, но теперь не могу прикрутить адекватное отображение. Через циклы с отдельной формой в шаблонизаторе не вышло =\
Мне нужно вывести список машин и что бы одна только галочка была по сути

Dan
11.04.2018
16:30:38
это же админка ?

Lazoreth
11.04.2018
16:30:46
Нет

Dan
11.04.2018
16:30:54
почитай как сделать read_only поля

Google

Dan
11.04.2018
16:31:12
выводи просто текстом

Lazoreth
11.04.2018
16:31:15
Это в формах?
выводи просто текстом
Я не совсем отдупляю как это всё на страницу красиво передать если форму отдельную сделать а текст отдельно списком через вьюху
Решил что проще будет форму сделать

Dan
11.04.2018
16:33:20
попробуй сделать
TextField
c disabled=True

Lazoreth
11.04.2018
16:35:39
textfield с queryset не работает же
Там прикол в том что надо 10-20 обьектов передать на страницу, а я чёт не понимаю как их в форму грамотно отправить из вьюхи, по этому вытаскиваю их через pk
disabled=True вроде работает, спасибо
А блин, виджет textfield
Точно, с виджетами поигратся. Спасибо!
А можно как-то в форму передать аргументы?
Долго страница рендерится изза того что queryset=objects.all()

Николай
11.04.2018
17:09:49
В модели оно быстрее в любом случае
Сделай фильтры на модель

Lazoreth
11.04.2018
17:11:23
Да я вот и не знаю как там фильтры прописать
Там нужно что то вроде owner = get_object_or_404(Client, pk=client_id)
Откуда там client_id взять?
Можно как-то вообще к аттрибуту обьекта обратится из формы? все car привязаны к client через foreignkey

Николай
11.04.2018
17:12:50
В. Просто передавай не objects.all() а objects.filter(id='idvalue')