
ros
25.03.2018
04:54:24
кто говорил про телеграм?

Rodion
25.03.2018
04:54:48

ros
25.03.2018
04:56:44
к django врятли имеет отношение тоже

SN
25.03.2018
04:59:22

Google

SN
25.03.2018
04:59:46
Чтож я тоже удалил )

Дмитрий
25.03.2018
06:58:34

Fred
25.03.2018
07:27:41


Konstantin
25.03.2018
08:07:12
А подскажите, как нужно указать в модели, что при создании объекта, не нужно создавать объект указанный во внешнем ключе? Я пытаюсь сохранить объект, а он автоматом пытается создать ссылочный объект, и пишет что такой объект уже существует. Схема такая - с ангуляр фронта приходит запрос({"firstName":"vvvvvv","lastName":"vvvvvv","username":"vvvvvv","password":"&&&&&&&&&","password_confirm":"&&&&&&&&&","profile":{"doctor":{"id":32242,"name":"Анастасия Сергеевна Попова"}}}) , к сераилайзеру дефолтному рест_регистрейшн добавлено свойство профайл, в профайл сериалайзере добавлен доктор сериалайзер. В модели профайла указана ссылка на доктора как foreignKey.

Dan
25.03.2018
08:08:53
Объект создаёт не модель а сериализатор
Как вариант задать read_only

Alexander
25.03.2018
08:10:25

Konstantin
25.03.2018
08:10:55
Как вариант задать read_only
class DoctorSerializer(serializers.ModelSerializer):
class Meta:
model = Doctor
fields = ('id', 'name')
class ProfileSerializer(serializers.ModelSerializer):
doctor = DoctorSerializer()
class Meta:
model = Profile
fields = ('doctor', )
class RegistrationSerializer(DefaultRegisterUserSerializer):
profile = ProfileSerializer()
def init(self, *args, **kwargs):
super().init(*args, **kwargs)
self.Meta.fields = self.Meta.fields + ('profile',)
def create(self, validated_data):
data = validated_data.copy()
print(data)
if self.has_password_confirm:
del data['password_confirm']
return self.Meta.model.objects.create_user(**data)

SN
25.03.2018
08:11:47

Rodion
25.03.2018
08:13:34

Konstantin
25.03.2018
08:14:21
Как вариант задать read_only
class ProfileSerializer(serializers.ModelSerializer):
doctor = DoctorSerializer()
class Meta:
model = Profile
fields = ('doctor', )
read_only_fields = ('doctor',)
вот так не сработало, все равно возвращает - profile: doctor: id: Array(1)0: "doctor with this id already exists."

Google

SN
25.03.2018
08:15:16
для тг нашла в инете когда погуглил

Rodion
25.03.2018
08:16:39

Konstantin
25.03.2018
08:17:36

Rodion
25.03.2018
08:20:18

Konstantin
25.03.2018
08:21:22
а..

Maksim
25.03.2018
08:31:18
doctor = DoctorSerializer(read_only=True)
Скорее всего имелось ввиду

SN
25.03.2018
08:42:04

Runinterface ?
25.03.2018
10:20:21
Ребят как обложить rest api на джанго rest framework авторизацией через токен только определенные методы?

Дмитрий
25.03.2018
10:42:18
permissions

Runinterface ?
25.03.2018
10:42:54
permissions
@csrf_exempt
def posts_list(request):
if request.method == 'GET':
snippets = Posts.objects.all()
serializer = PostsSerializer(snippets, many=True)
return JsonResponse(serializer.data, safe=False)

Дмитрий
25.03.2018
10:43:36
http://www.django-rest-framework.org/api-guide/permissions/

Runinterface ?
25.03.2018
10:43:52
permissions
@permission_classes((IsAuthenticated))
ругается на то что не может найти IsAuthenticated

Дмитрий
25.03.2018
10:44:09
установи для определенной вьюхи соотвествующий пермишион

Petr
25.03.2018
10:44:26

Runinterface ?
25.03.2018
10:44:35
ок ща попробую
установи для определенной вьюхи соотвествующий пермишион
@api_view(['GET'])
@authentication_classes((SessionAuthentication, BasicAuthentication))
@permission_classes((IsAuthenticated, ))
@csrf_exempt
def posts_list(request):
if request.method == 'GET':
snippets = Posts.objects.all()
serializer = PostsSerializer(snippets, many=True)
return JsonResponse(serializer.data, safe=False)
elif request.method == 'POST':
data = JSONParser().parse(request)
serializer = PostsSerializer(data=data)
if serializer.is_valid():
serializer.save()
return JsonResponse(serializer.data, status=201)
return JsonResponse(serializer.errors, status=400)
Вроде сделал но всеравно json возвращает без запроса токена
что не так делаю?

Google

Petr
25.03.2018
10:55:06
ты в доку смотрел?

Runinterface ?
25.03.2018
10:56:16
в settings.py
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework.permissions.IsAuthenticated',
)
}

Andrey
25.03.2018
11:05:11

Runinterface ?
25.03.2018
11:06:27

Petr
25.03.2018
11:07:19
вообще есть же JWT, куда как приятнее

Andrey
25.03.2018
11:07:23

Владимир
25.03.2018
11:08:02

Andrey
25.03.2018
11:08:22

Владимир
25.03.2018
11:08:59

Andrey
25.03.2018
11:09:37

Владимир
25.03.2018
11:09:49

Andrey
25.03.2018
11:10:44
Выкидываешь его нафиг и пишешь собственный бекенд на токенах

Владимир
25.03.2018
11:11:11

Andrey
25.03.2018
11:11:33

Виталий
25.03.2018
11:12:14
Hi All!
подскажите как правильно забзать несколько параметров для адреса?
С одним параметром сейчас елаю так:
{% url 'hardware:json_get_hw_models' hw_type_id='0'%}".replace('0', hw_type_id).
Как добавить второй параметр stock_id например не могу догнать

Andrey
25.03.2018
11:12:37
С третьего раза, надеюсь, донес.

Google

Владимир
25.03.2018
11:13:26
неа, не донес. лучшего так и не предложил. чем самописный бэк на токенах будет отличаться от jwt?

Andrey
25.03.2018
11:16:28

Владимир
25.03.2018
11:16:54

Admin
ERROR: S client not available


Konstantin
25.03.2018
11:21:56
А кто может подсказать, как сохранить ссылку на существующую сущность, при сериализации. Вот пример - class DoctorSerializer(serializers.ModelSerializer):
class Meta:
model = Doctor
fields = ('id', 'name')
def create(self, validated_data):
return Doctor(**validated_data)
class ProfileSerializer(serializers.ModelSerializer):
#doctor = serializers.PrimaryKeyRelatedField(read_only=True) - если ставим эту строчку, то ссылка на доктора не сохраняется, если ставим read_only=False - то пытается сохранить доктора, и пишет что доктор уже сущестует
doctor = serializers.SlugRelatedField(many=False, read_only=True,
slug_field='id')
class Meta:
model = Profile
fields = ('doctor','testData' )
def create(self, validated_data):
print('create Profile instance')
print(validated_data)
return Profile(**validated_data)
class RegistrationSerializer(DefaultRegisterUserSerializer):
profile = ProfileSerializer()
def init(self, *args, **kwargs):
super().init(*args, **kwargs)
self.Meta.fields = self.Meta.fields + ('profile',)
self.Meta.depth = 2
def create(self, validated_data):
profile_data = validated_data.pop('profile')
data = validated_data.copy()
if self.has_password_confirm:
del data['password_confirm']
user = User.objects.create(**data)
Profile.objects.create(user=user, **profile_data)
return user


Andrey
25.03.2018
11:23:27
Не то, что я читал в первый раз, но тоже неплохо.
Ты уж прости. Я ещё не всегда могу грамотно выстраивать защиту. Поэтому, вот такой небольшой хаос.
Но да, он супер-быстрое решение.

Владимир
25.03.2018
11:31:33
вот как только кто-нибудь предложит лучшуу альтернативу jwt, так сразу можно будет менять, а сейчас не на что


Konstantin
25.03.2018
11:55:50
А кто может подсказать, как сохранить ссылку на существующую сущность, при сериализации. Вот пример - class DoctorSerializer(serializers.ModelSerializer):
class Meta:
model = Doctor
fields = ('id', 'name')
def create(self, validated_data):
return Doctor(**validated_data)
class ProfileSerializer(serializers.ModelSerializer):
#doctor = serializers.PrimaryKeyRelatedField(read_only=True) - если ставим эту строчку, то ссылка на доктора не сохраняется, если ставим read_only=False - то пытается сохранить доктора, и пишет что доктор уже сущестует
doctor = serializers.SlugRelatedField(many=False, read_only=True,
slug_field='id')
class Meta:
model = Profile
fields = ('doctor','testData' )
def create(self, validated_data):
print('create Profile instance')
print(validated_data)
return Profile(**validated_data)
class RegistrationSerializer(DefaultRegisterUserSerializer):
profile = ProfileSerializer()
def init(self, *args, **kwargs):
super().init(*args, **kwargs)
self.Meta.fields = self.Meta.fields + ('profile',)
self.Meta.depth = 2
def create(self, validated_data):
profile_data = validated_data.pop('profile')
data = validated_data.copy()
if self.has_password_confirm:
del data['password_confirm']
user = User.objects.create(**data)
Profile.objects.create(user=user, **profile_data)
return user
эх, пришлось два разных сериализара делать, Один на вьюху, что бы отображать
class ProfileForOuputSerializer(serializers.ModelSerializer):
doctor = DoctorSerializer(read_only=True)
и один для того что бы регистрировать пользователя - для него -
class ProfileForInputSerializer(serializers.ModelSerializer):
doctor = serializers.SlugRelatedField( slug_field='id',queryset= Doctor.objects.all())
Криво, зато работает )


Dude
25.03.2018
12:20:30
class Description_of_days_inline(admin.TabularInline):
model = Description_of_days
extra = 3
class MiniBlockInline(admin.TabularInline):
model = Mini_block
extra = 3
class RouteAdmin(admin.ModelAdmin):
list_display = [
'name',
'description',
'get_big_img_slide',
'get_big_route_img',
]
prepopulated_fields = {'slug': ('name', )}
read_only = ['route_img']
inlines = [ MiniBlockInline, Description_of_days_inline ]
class RouteInTour(admin.StackedInline):
model = Route
extra = 1
class TourAdmin(admin.ModelAdmin):
list_editable = ['description',]
list_display = [
"__str__",
"description",
"price",
"days",
"start_croise",
'get_big_mini_image',
]
search_fields = ['slug']
prepopulated_fields = {"slug": ("title",)}
inlines = [Sliders_inline, RouteInTour] Как сделать чтобы в админке наследованный инлайн был? Хочу чтобы в 'TourAdmin' Не просто модель Route была, а 'RouteAdmin' класс уже с его инлайнами ?

Lazoreth
25.03.2018
13:21:39
Как конкретную миграцию в джанго выпилить?

Vova
25.03.2018
13:21:53
Всем привет, как сделать тру способом настройки сайта в веб админке django?

Lazoreth
25.03.2018
13:21:59
Я по ошибке сделал unique=True в BooleanField
И создал миграцию

amureki
25.03.2018
13:22:28

Vova
25.03.2018
13:22:48
В них есть поддержка 2.0?

Google

Petr
25.03.2018
13:22:59
И создал миграцию
пойти в папку мигрейшонс и удалить/отредактировать файл нужный, например

Dan
25.03.2018
13:23:15
И создал миграцию
Если миграции не применялась можно либо удалить файл миграции, либо убрать правило

Vova
25.03.2018
13:23:26

Lazoreth
25.03.2018
13:24:29
Так, вроде победил
Хочу ещё на норм базу переехать, он сам на пустой базе все миграции нужные сделает если сделать manage.py migrate?

Dan
25.03.2018
13:30:26
При подключении к новой базе migrate делаешь сам

Lazoreth
25.03.2018
13:59:27
Ошибка валится
conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
psycopg2.OperationalError
Сервак работает, если из idle подключатся то норм

Senpos
25.03.2018
14:00:25

Lazoreth
25.03.2018
14:00:29
А нет, из idle та же задница
>>> import psycopg2
>>> psycopg2.connect("host=10.10.1.10 port=5432 user=its dbname=its password=123")
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
psycopg2.connect("host=10.10.1.10 port=5432 user=itservice dbname=itservice password=12345678")
File "C:\Users\Сашулечка\AppData\Local\Programs\Python\Python36-32\lib\site-packages\psycopg2\__init__.py", line 130, in connect
conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
psycopg2.OperationalError
>>>
Как быть? Даже что за ошибка не разобратся

Igor
25.03.2018
14:04:07
Ребят, не бейте палками:
я хочу получить например юзеров возрастом 25 лет, будет выглядеть так:
```users = User.objects.filter(age=25)```
А как мне передать условие, например, age<25? Пробовал туда пихать лямбда-функции - получается ерунда