Size: a a a

Django [ru] #STAY HOME

2019 October 24

d

djigit0s in Django [ru] #STAY HOME
Dan Tyan
а ты какие данные отправляешь ?
client и text
источник

OS

Oleksii Suvertok in Django [ru] #STAY HOME
client__user_id
источник

OS

Oleksii Suvertok in Django [ru] #STAY HOME
Message.objects.create(client__user=self.request.user)
источник

ЕК

Евгений Коваль in Django [ru] #STAY HOME
Arseniy Volobuev
через raw query? :)
Нет, можно через ORM.
Смотри в сторону aggregate + CASE + MAX
https://docs.djangoproject.com/en/2.2/topics/db/aggregation/
from django.db.models import Max
from django.db.models import Case, When
По идее возможно. Есть только одно но если я правильно понимаю, в результат на ружу придется выдавать через values или values_list.
источник

DT

Dan Tyan in Django [ru] #STAY HOME
djigit0s
client и text
вариант переписать малость create метод ?
источник

DT

Dan Tyan in Django [ru] #STAY HOME
а в client что приходит ?
источник

d

djigit0s in Django [ru] #STAY HOME
Dan Tyan
вариант переписать малость create метод ?
да, конечно
источник

ЕК

Евгений Коваль in Django [ru] #STAY HOME
Arseniy Volobuev
через raw query? :)
И да зависит от версии django. Если у тебя 1.1.4 то не сможешь кроме как через raw query.
источник

AV

Arseniy Volobuev in Django [ru] #STAY HOME
Евгений Коваль
И да зависит от версии django. Если у тебя 1.1.4 то не сможешь кроме как через raw query.
Спасибо за совет! Версия 2.2 👌
источник

d

djigit0s in Django [ru] #STAY HOME
Dan Tyan
а в client что приходит ?
на данном этапе все стандартно, инчего не переопределено.

class ClientSerializer(serializers.ModelSerializer):
 class Meta:
   model = Client
   fields = ('user_id', 'user_name', 'is_admin', 'created')

class MessageSerializer(serializers.ModelSerializer):
 class Meta:
   model = Message
   fields = ('client', 'text', 'created')

views.py
class ClientViewSet(viewsets.ModelViewSet):
 queryset = Client.objects.all()
 serializer_class = ClientSerializer

class MessageViewSet(viewsets.ModelViewSet):
 queryset = Message.objects.all()
 serializer_class = MessageSerializer
источник

DT

Dan Tyan in Django [ru] #STAY HOME
в поле client что приходит ?
источник

d

djigit0s in Django [ru] #STAY HOME
Dan Tyan
в поле client что приходит ?
по умолчанию приходит PK, а нужно user_id
источник

DT

Dan Tyan in Django [ru] #STAY HOME
djigit0s
по умолчанию приходит PK, а нужно user_id
с фронта что приходит ?
источник

d

djigit0s in Django [ru] #STAY HOME
Dan Tyan
с фронта что приходит ?
число client=1 text='other text'
источник

DT

Dan Tyan in Django [ru] #STAY HOME
и 1 это user_id в Client?
источник

d

djigit0s in Django [ru] #STAY HOME
Dan Tyan
и 1 это user_id в Client?
да
источник

DT

Dan Tyan in Django [ru] #STAY HOME
а у тебя одна запись в Client на одного юзверя ?
источник

d

djigit0s in Django [ru] #STAY HOME
Dan Tyan
а у тебя одна запись в Client на одного юзверя ?
да, поле user_id содержит уникальные значения
источник

DT

Dan Tyan in Django [ru] #STAY HOME
djigit0s
да, поле user_id содержит уникальные значения
скорее всего надо переопределять метод create во въюхе
источник

d

djigit0s in Django [ru] #STAY HOME
Dan Tyan
скорее всего надо переопределять метод create во въюхе
так то могу переопределить метод create, я думал раз из коробки он может искать по полю PK, то получится его переопределить
источник