
Hot
12.08.2017
05:56:21
А в чём принципиальная разница между TestCase.assertEqual и TestCase.failsIfNotEqual?

Alexey
12.08.2017
06:16:12
суббота день работа....

Sergey❄️
12.08.2017
10:03:23
А можно сделать default value для IntegerField как инкримент (значения из последней строки)?

Denis
12.08.2017
10:12:49

Google

Oleg
12.08.2017
10:15:38
А подскажите пожалуйста, как в менеджере модели можно переопределить методы так, чтобы у них было разное количество аргументов?

Denis
12.08.2017
10:16:38

Oleg
12.08.2017
10:17:28
При таком раскладе старый метод останется
Или может я что-то неправильно думаб

Сергей
12.08.2017
10:18:59
А старый метод нужен?

Sergey❄️
12.08.2017
10:19:05
models.AutoField не?
https://stackoverflow.com/questions/18541886/how-do-i-get-a-default-value-for-a-field-that-usually-increments-in-django
Вроде такое

Oleg
12.08.2017
10:19:30
Просто идея такая, что хочу сделать менеджер, который обязательно должен принимать юзера для проверки, можно ли выдать инфу или нет
Вот и не знаю, как это сделать

Denis
12.08.2017
10:20:10

Oleg
12.08.2017
10:20:32

Сергей
12.08.2017
10:21:41
А это точно в менеджере делается?

Sergey❄️
12.08.2017
10:21:50

Denis
12.08.2017
10:23:36

Google

Denis
12.08.2017
10:23:54

Oleg
12.08.2017
10:24:43
Ну, наверное) просто у каждой записи в таблице есть её уровень доступа, а у юзера есть права. Запросов на эти записи будет очень много, фильтровать каждый раз - не django путь

Denis
12.08.2017
10:25:42
Я ж хз какая у него задача, молчит как партизан

Oleg
12.08.2017
10:25:48
По сути да, но вот старые методы останутся, которые и разрешат доступ без пользователя к любым данным

Sergey❄️
12.08.2017
10:26:40

Denis
12.08.2017
10:27:37

Sergey❄️
12.08.2017
10:27:57

Denis
12.08.2017
10:29:07

Sergey❄️
12.08.2017
10:57:20

Denis
12.08.2017
10:59:32

Oleg
12.08.2017
11:09:57
Да, я думал о декораторах, но из-за того, что методы менеджера генерятся динамически, то даже не знаю, как их применить
А миддлвари как использовать? Может есть какая документация по тому, как они работают и как их кастомизировать?

Denis
12.08.2017
11:13:47
Или вы неправильно задачу объясняете
Попробуйте конкретно её объяснить без абстракций

Oleg
12.08.2017
11:18:00
Ну, суть в том, что таблиц где у элементов права доступа - очень много. По сути, чтобы юзеру выдать только ту информацию, которую можно, нужно делать что-то типа Model.objects.filter(...).filter(access="wtf")
Вот хочется сделать такой менеджер, чтобы второй фильтр не пришлось приписывать

Google

Oleg
12.08.2017
11:18:46
Хотя, я кажется понял
Мне нужно сделать свой QuerySet для такой задачи, верно?
И в нём будут методы all, filter и т.д. с обязательным запросом юзера

Denis
12.08.2017
11:21:30
Почему нельзя в одном фильтре проверить Ваш access?

Oleg
12.08.2017
11:22:46
Потому что если я где-нибудь это действие пропущу - будет выдаваться то, что не должно. Плюс мало ли, кто после меня будет копаться

Denis
12.08.2017
11:23:39
Ну вам же в любом случае в аргументах нужен будет юзер?

Oleg
12.08.2017
11:24:19
Да, но было бы клёво, если он был бы обязательным аргументом
Что без указания прав этого юзера я выборку произвести не смогу

Denis
12.08.2017
11:24:58
Обязательным для чего?

Oleg
12.08.2017
11:25:17
Для фильтра

Denis
12.08.2017
11:25:42
Для .all, filter ?

Oleg
12.08.2017
11:25:57
Да

Denis
12.08.2017
11:26:10
Не нужно так делать

Oleg
12.08.2017
11:27:07
А как тогда лучше?
Просто иначе я могу просто допустить ошибку и потом я её уже не найду. Или после меня кто-нибудь допустит ошибку

Denis
12.08.2017
11:29:41
Создайте отдельный метод в своем кастомном менеджере типа access_by_user(user) и фильтруйте себе на здоровье.. а когда нужно вызывайте Model.objects.access_by_user(user).filter...

Oleg
12.08.2017
11:33:04
Хорршо, спасибо) видимо, после джавы осталось непреодолимое желание везде ограничить доступ

Denis
12.08.2017
11:37:42
И уж если так охота переопределить filter менеджера, то проверяйте что то типа if not 'user' in kwargs: raise...
Но в эксепшене обязательно напишите, что не хватает аргумента юзера и зачем. А то ж забудете)))

Google

Dmitriy
12.08.2017
11:57:14

Oleg
12.08.2017
11:58:06
Ага, спасибо)
Тесты - да) а если не я буду дописывать

Dmitriy
12.08.2017
12:02:36

Oleg
12.08.2017
12:03:54
Ну, не знаю) зачем мучиться и искать ошибку в тестах, если можно её избежать

Dmitriy
12.08.2017
12:05:53

Ahmed
12.08.2017
12:15:56
Прошу прощения за тупой вопрос, но не знаю как гуглить его))
Мой вебсервер возврощает мне такой ответ:
"POST /youtube/results/ HTTP/1.1" 301 0
Что в конце этого ответа обозначает цифра 0?

Oleg
12.08.2017
12:18:33
Я же не спорю против тестов, я к тому, что ошибка на тестах не покажется, так как она логическая

Admin
ERROR: S client not available

Ahmed
12.08.2017
12:19:34
странно однако)

Th0r
12.08.2017
12:35:12

Максим
12.08.2017
13:05:35
Привет всем.
Создаю свой класс User по примеру из официальной документации
Код оставлю ниже
При попытке через shell создать объект этого класса командой s = User.objects.create('nrjshka@gmail.com', 'password','Maxim', 'Korolev', datetime.now(), 'Rybinsk')
Выдает следующую ошибку (фото оставлю ниже)
P.S. Испробовал словари, кортежи и списки - ничего не помогает.
С чем это может быть связано?

Ilgiz
12.08.2017
13:29:57

Сергей
12.08.2017
13:30:44

Максим
12.08.2017
13:30:50
Eue

Google

Максим
12.08.2017
13:30:51
Угу
Так и решил

Mike
12.08.2017
14:06:57
как сделать в блоге "read more"? Хотелось бы чтобы кнопка "read more" была перед завершающим предложением, к примеру после десятого предложения. Как реализовать это? в моделе метод сделать?
В моделе можно укоротить ну типо сплитить , срезать .....
или ....


Максим
12.08.2017
14:09:43
Почему-то не работают токены в django
Вот код
Первый класс
Второй класс
Выводит список пользователей через django-rest-api
from rest_framework import viewsets
from .serializers import *
from society.models import User
class UserViewSet(viewsets.ModelViewSet):
queryset = User.objects.all()
serializer_class = UserSerializer
Вот сериалайзер:
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = [
'username',
'password',
]
Выводит пользователей
Но при попытке создать токен через obtain_jwt_token выдает следующее(хотя все данные подходят):
о этого тестировал с базовым классом и все получалось(с тем же кодом)
Использую obtain_jwt_token
Т.е. он же должен работать для базового класса
А я его переопределил
AUTH_USER_MODEL = 'society.User'

Oleg
12.08.2017
14:44:29
Подскажите пожалуйста, что делает related_name и как оно работает?