Size: a a a

Django [ru] #STAY HOME

2019 December 01

GS

Grigory Surkov in Django [ru] #STAY HOME
Барсик
class UserCarsListSerializer(serializers.ModelSerializer):
   cars = CarSerializer(source='cars', many=True)
   model = User
   fields = ('id', 'email', 'first_name', 'language', 'cars')

Не завелось(
Можно модели User и Car посмотреть?
источник

GS

Grigory Surkov in Django [ru] #STAY HOME
Барсик
Господа, может кто подскажет, как получить через DRF связанные объекты для юзера?

во view:
class UserCarsListView(generics.ListAPIView):
   serializer_class = UserCarsListSerializer
   queryset = User.objects.all()

в serializers:
class CarSerializer(serializers.ModelSerializer):

   class Meta:
       model = Car
       fields = ('id', 'name', 'year_of_issue', 'add_date', 'status', 'renter')


class UserCarsListSerializer(serializers.ModelSerializer):
   cars = CarSerializer(source='cars')
   model = User
   fields = ('id', 'email', 'first_name', 'language', 'cars')


Ругается на то, что у объекта tuple нет метода value:
'tuple' object has no attribute 'values'
И где class Meta в UserCarsListSerializer?
источник

Б

Барсик in Django [ru] #STAY HOME
Grigory Surkov
Можно модели User и Car посмотреть?
источник

Б

Барсик in Django [ru] #STAY HOME
Grigory Surkov
И где class Meta в UserCarsListSerializer?
Поправил.
Теперь говорит, что:
Got AttributeError when attempting to get a value for field `cars` on serializer `UserCarsListSerializer`.
The serializer field might be named incorrectly and not match any attribute or key on the `User` instance.
Original exception text was: 'User' object has no attribute 'cars'.
источник

GS

Grigory Surkov in Django [ru] #STAY HOME
А где cars = ManyToMany(Car) на юзере?
источник

Б

Барсик in Django [ru] #STAY HOME
Grigory Surkov
А где cars = ManyToMany(Car) на юзере?
Но, ведь там ManyToOne.
источник

Б

Барсик in Django [ru] #STAY HOME
Car по внешнему ключу на User.
источник

GS

Grigory Surkov in Django [ru] #STAY HOME
Барсик
Но, ведь там ManyToOne.
Чтобы сериалайзер работал с этим так, как тебе нужно, User должен иметь ManyToMany к Car, а не Car с FK
источник

Б

Барсик in Django [ru] #STAY HOME
Хм.
источник

GS

Grigory Surkov in Django [ru] #STAY HOME
И fk с Car'a вообще лучше убрать в таком случае
источник

Б

Барсик in Django [ru] #STAY HOME
Спасибо.
Еще попытаюсь поковыряться конечно, если совсем безнадёга - поменяю модель.
источник

GS

Grigory Surkov in Django [ru] #STAY HOME
Барсик
Спасибо.
Еще попытаюсь поковыряться конечно, если совсем безнадёга - поменяю модель.
А ты над проектом уже долго работаешь? Если нет, то лучше сразу заменить, потому что потом это может вызвать проблемы
источник

Б

Барсик in Django [ru] #STAY HOME
Понял, спасибо.
Не долго совсем.
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Барсик
class UserCarsListSerializer(serializers.ModelSerializer):
   cars = CarSerializer(source='cars', many=True)
   model = User
   fields = ('id', 'email', 'first_name', 'language', 'cars')

Не завелось(
я практически не работаю с drf, но помоему это твой случай:
https://www.django-rest-framework.org/api-guide/relations/#stringrelatedfield
источник

N

N1LEX in Django [ru] #STAY HOME
Барсик
Господа, может кто подскажет, как получить через DRF связанные объекты для юзера?

во view:
class UserCarsListView(generics.ListAPIView):
   serializer_class = UserCarsListSerializer
   queryset = User.objects.all()

в serializers:
class CarSerializer(serializers.ModelSerializer):

   class Meta:
       model = Car
       fields = ('id', 'name', 'year_of_issue', 'add_date', 'status', 'renter')


class UserCarsListSerializer(serializers.ModelSerializer):
   cars = CarSerializer(source='cars')
   model = User
   fields = ('id', 'email', 'first_name', 'language', 'cars')


Ругается на то, что у объекта tuple нет метода value:
'tuple' object has no attribute 'values'
тестовое задание делаешь))
источник

Б

Барсик in Django [ru] #STAY HOME
N1LEX
тестовое задание делаешь))
Ага. Все сделал нормально, тут застрял ну просто в никакую...
источник

N

N1LEX in Django [ru] #STAY HOME
да это просто
источник

Б

Барсик in Django [ru] #STAY HOME
Последнее, что осталось допилить и можно заворачивать в контейнер.
источник

GS

Grigory Surkov in Django [ru] #STAY HOME
Барсик
Ага. Все сделал нормально, тут застрял ну просто в никакую...
А что за тест, если не секрет?)
источник

N

N1LEX in Django [ru] #STAY HOME
ну как ты все сделал а это никак
источник