
Dan
31.07.2017
06:30:28
на сколько я понял надо
def foo(request):
...
return TemplateView.as_view()

Massimo
31.07.2017
06:30:53
а зачем ?
У меня def првоеряет юхверя на то какой он группы, чтобы люди из других групп не смогли попсать, а через class TemplateView хочу сделать чтобы юзать формы джанго

Dan
31.07.2017
06:31:35
это только для одного урла будет или по всему сайту ?

Eldar
31.07.2017
06:31:45

Google

Massimo
31.07.2017
06:32:20

Eldar
31.07.2017
06:32:51

Dan
31.07.2017
06:34:22
в данном случае для одного
ну я бы на твоем месте переопределил dispatch в классе
и при необходимости в dispatch можно вызвать твою функцию и передать в нее request

Massimo
31.07.2017
06:40:43
https://dpaste.de/OsLF
Контекст дата тут ни к месту

ilya
31.07.2017
06:42:02
ты пытаешься FBV и СBV замиксовать?)))

Mikhail
31.07.2017
06:42:09
чудовищно

Massimo
31.07.2017
06:42:34

Mikhail
31.07.2017
06:42:47
для CBV используйте микшины с проверками прав (по-моему, в джанге даже встроенный есть). Для функциональных вьюх - декораторы

ilya
31.07.2017
06:43:23
)
используй просто CBV, просто немного прочитай как он работает и тебе правильно выше подсказывают, переопредели в нём методы, по необходимости.

Mikhail
31.07.2017
06:43:31
и да, CBV нужно быть осторожнее

Google

Massimo
31.07.2017
06:44:02
CBV разве позволяют проверят права юзверя?

Mikhail
31.07.2017
06:44:26
я постесняюсь сказать, что он не нужен. Но серебряной пулей он не является.

Eldar
31.07.2017
06:45:33

Mikhail
31.07.2017
06:45:49
https://github.com/django/django/blob/master/django/contrib/auth/mixins.py#L88 - три

Massimo
31.07.2017
06:57:59

Mikhail
31.07.2017
06:58:34
чо?

Massimo
31.07.2017
06:59:56
чо?
Ну тут еще один нюанс возникает. Каждый юзер после логина перенаправляется в свою часть сайт (по своей ссылке) здесь же, как я понял redirect_field_name = REDIRECT_FIELD_NAME указывается одна ссылка перенаправа

Mikhail
31.07.2017
07:00:08
class MyView(UserPassesTestMixin, TemplateView):
def test_func(self):
return True # Write your logic here
template_name = 'my-template.html'
конкретно в этом случае CBV по объёму занимает не больше, чем FBV
если нужна более сложная логика, то, насколько я вижу, можно закостылить handle_no_permission

Massimo
31.07.2017
07:17:22

Mikhail
31.07.2017
07:17:40
self.request.user

Massimo
31.07.2017
07:17:51
Реквеста нету как в деф тут не так тривиально как я понял

Mikhail
31.07.2017
07:18:00
ну надо ж исходники-то хоть немного смотреть, нет?

Massimo
31.07.2017
07:18:02
А.... или трифвиально

Mikhail
31.07.2017
07:18:30
в любом CBV есть self.request, это, собственно, то, для чего всё и затевалось

Massimo
31.07.2017
07:18:30

Google

Mikhail
31.07.2017
07:20:04
мне казалось, что NotImplementedError довольно чётко даёт понять, чего нужно от пользователя

Massimo
31.07.2017
07:22:50

Grigoriy
31.07.2017
08:14:50
Кто-нибудь конфигурил JWT для DRF?

Mikhail
31.07.2017
08:15:41
случалось.

Grigoriy
31.07.2017
08:19:52
Нашел только одну либу rest_framework_jwt
не пойму, я как-то видел себе это по другому -
1. Вызывается метод получения токена
2. В случае успеха - возвращается 2 токена - 1 токен авторизации, с которым можно вызывать вьюшки - токен с определёным временем действия, когда экспайрится - вьюшки возвращают 401 ошибку
3. Второй токен - т.н. рефреш токен - в случае, если заэкспайрился первый токен - идёт запрос с этим рефреш токеном на получение нового токена авторизации.
Что я вижу тут:
1. Токен авторизации можно получить только по логин,паролю
2. Обновить токен без логин пароля невозможно - можно только по незаэкспайренному токену получить новый (??? что это???)
3. Есть метод vefiry - (ЗАЧЕМ?)
Хоть бери да и пиши свою либу

Mikhail
31.07.2017
08:21:11
это в JWT нужно два токена?

actinuranium
31.07.2017
08:21:31
привет, ребята. столкнулся с проблемой: поиск в админке на кириллице регистрозависимый. на разных форумах пишут, что из-за СУБД SQLite. может есть какой-нибудь костыль?

Grigoriy
31.07.2017
08:22:15

Mikhail
31.07.2017
08:22:47
но если прям совсем надо, то можно админку захачить, полагаю

actinuranium
31.07.2017
08:23:42

Mikhail
31.07.2017
08:24:04

Mikhail
31.07.2017
08:25:39
я бы переехал, пожалуй. Хотя бы чтобы не потерять данные из-за сгоревшего винта

actinuranium
31.07.2017
08:27:06

Grigoriy
31.07.2017
08:27:12
а зачем, если не секрет?
ну вдохновился статьями на иностранных ресурсах + пообщался с фронтендщиками - они привыкли к такому формату

Mikhail
31.07.2017
08:27:48
а вообще, в drf_jwt можно настроить leeway
вообще, там какая идея: токен выдаётся на какое-то время (скажем, на 1 час)
и есть некоторое окно, в которое его (токен) можно продлять, скажем, 1 неделя

Google

Mikhail
31.07.2017
08:30:53
и после продления токена это окно не сдвигается. Это фактически та дата, после которой токен сдохнет окончательно и не сможет быть перевыпущен
вроде бы все так и делают: получают токен и обновляют его периодически, пока есть возможность :)
и verify, кстати, довольно полезная точка

egon
31.07.2017
08:34:51
Нас 1 мегаЧел. Ура! ?

b0g3r
31.07.2017
08:37:17

Eugene
31.07.2017
08:37:34
Сейчас будет -1

Admin
ERROR: S client not available

ilya
31.07.2017
08:37:37
килоЧел ??

b0g3r
31.07.2017
08:37:51
киби!)
https://ru.wikipedia.org/wiki/%D0%94%D0%B2%D0%BE%D0%B8%D1%87%D0%BD%D1%8B%D0%B5_%D0%BF%D1%80%D0%B8%D1%81%D1%82%D0%B0%D0%B2%D0%BA%D0%B8

egon
31.07.2017
08:39:29
Кило, Мега главное 1024 ?

b0g3r
31.07.2017
08:39:50
но... киби...

ilya
31.07.2017
08:40:16
всё. Киби -1

Mikhail
31.07.2017
08:40:45
если с нуля считать, то всё норм
а если не с нуля, всё равно красивое число, 9 единичек

Massimo
31.07.2017
09:49:12
class ScheduleView(UserPassesTestMixin, TemplateView):
def test_func(self):
us = self.request.user
if us.groups.filter (name='somegroup'):
return True # Write your logic here
template_name = 'html.html'
def get(self, request, *args, **kwargs):
form = HomeForm() #на это жалуется
return render(request, self.template_name, {'form':form})
class HomeForm(forms.ModelForm):
post = forms.CharField(max_length=20)
Почему в 1.11 он жалуется на def get? Говорит ModelForm has no model class specified.

ilya
31.07.2017
09:51:07
а ты заимпортил это своё HomeF(P)orm(n)? Или создал?))

Massimo
31.07.2017
09:51:38
from .forms import HomeForm

ilya
31.07.2017
09:58:01
Только импорт)
оно ещё к модели привязано, на неё ругается) Дай ему модель)

Google

Massimo
31.07.2017
09:59:01

ilya
31.07.2017
09:59:26

Massimo
31.07.2017
10:02:37
А как в случае с привязкой должно выглядить?

ilya
31.07.2017
10:04:54
Сработало. ВТФ.
? Я сразу не врубился чё у тебя )) Короче Если форма логически связана с моделью( в models.py), Тогда да, наследуешься от МоделФорм и в мета указываешь класс модели. А если нет( как в твоём случае), тебе нужна просто форма, то наследуешься от Форм.

Massimo
31.07.2017
10:12:20

ilya
31.07.2017
10:13:51

Massimo
31.07.2017
10:14:28

ilya
31.07.2017
10:14:54
ну тогда я не знаю :)

Massimo
31.07.2017
10:15:18
А нет стоп)))
В конченом файле на гитхабе уже есть мета

ilya
31.07.2017
10:21:19
ну вот видишь :)

Ahmed
31.07.2017
10:24:25
Сделал я rest api. по определенному url я получаю все данные моего объекта в формате JSON. Теперь вот вопрос, где можно эти данные выдергивать? Можно у себя на пк поднять 2 сайт и с второго сайта дергать данные с первого сайта?

ilya
31.07.2017
10:28:14
можно

Artur
31.07.2017
10:30:52
как во floatfields можно ограничить знаки после запчтой?
или придется в бинес логике обрабатывать?

Ahmed
31.07.2017
10:33:34
можно
Вот только я не знаю как это дергать. Если не сложно могли бы статью подкинуть?