Size: a a a

Django [ru] #STAY HOME

2021 February 10

NS

Nik S in Django [ru] #STAY HOME
а как в drf изменить дефолтный вывод user: id  на user: username ? при том что поле user-а - ForeignKey
источник

NS

Nik S in Django [ru] #STAY HOME
это наверное в сериализаторе делается?
он у меня сейчас простее не придумаешь
class WishlistModelSerializer(serializers.ModelSerializer):
   class Meta:
       model = Wishlist
       fields = '__all__'

а как его переделать?...
вроде бы его вручную собрать можно, конктент вывода - но непонятно как пока что
источник

NS

Nik S in Django [ru] #STAY HOME
можно queryset вручную модифицировать через цикл for 😄
и заменить значение поля id на username перед сериализацией
источник

NS

Nik S in Django [ru] #STAY HOME
Ошибка странная вдруг вылезла - начал basename требовать
 assert queryset is not None, '`basename` argument not specified, and could ' \
AssertionError: `basename` argument not specified, and could not automatically determine the name from the viewset, as it does not have a `.queryset` attribute.
источник

NS

Nik S in Django [ru] #STAY HOME
Nik S
Ошибка странная вдруг вылезла - начал basename требовать
 assert queryset is not None, '`basename` argument not specified, and could ' \
AssertionError: `basename` argument not specified, and could not automatically determine the name from the viewset, as it does not have a `.queryset` attribute.
заменил
queryset = Wishlist.objects.all()
на
   def get_queryset(self):
       return Wishlist.objects.all()
поэтому
видимо так нельзя
источник

DT

Denis Taranov in Django [ru] #STAY HOME
Nik S
это наверное в сериализаторе делается?
он у меня сейчас простее не придумаешь
class WishlistModelSerializer(serializers.ModelSerializer):
   class Meta:
       model = Wishlist
       fields = '__all__'

а как его переделать?...
вроде бы его вручную собрать можно, конктент вывода - но непонятно как пока что
class WishlistModelSerializer(serializers.ModelSerializer):
   user = serializers.SerializerMethodField()
   class Meta:
       model = Wishlist
       fields = '__all__'

   def get_user(self, obj):
       return obj.user.username
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Denis Taranov
class WishlistModelSerializer(serializers.ModelSerializer):
   user = serializers.SerializerMethodField()
   class Meta:
       model = Wishlist
       fields = '__all__'

   def get_user(self, obj):
       return obj.user.username
можно же просто стрингрелейтидфилд
источник

NS

Nik S in Django [ru] #STAY HOME
Denis Taranov
class WishlistModelSerializer(serializers.ModelSerializer):
   user = serializers.SerializerMethodField()
   class Meta:
       model = Wishlist
       fields = '__all__'

   def get_user(self, obj):
       return obj.user.username
Тут user: 1, user: 2
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Nik S
Тут user: 1, user: 2
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Nik S
Тут user: 1, user: 2
а еще, будешь постить скриншоты, придет админ и забанит
источник

DT

Denis Taranov in Django [ru] #STAY HOME
непонел, а чому не сработал мой сериалайзер
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Denis Taranov
непонел, а чому не сработал мой сериалайзер
там кстати вэлью еще должно быть
источник

m

master-mn in Django [ru] #STAY HOME
всем привет,

столкнулся с задачкой
есть некая древовидная структура
у каждого элемента структуры есть поле parent_id которое указывает на id родителя за исключением первого уровня дерева у которого parent_id = 0

представим структуру:
P1
- C1.1
--- CC1.1.1
--- CC1.1.2
- C1.2
- C1.3
P2
P3

я хочу удалить P1 ну и логично надо удалить всех детей и детей детей и так далее - всю структуру P1 включительно

из урла я получаю id элемента P1, и дальше я собираю все элементы у которых parent_id = id элемента P1, а как дорваться на пример до CC1.1.1

на ум приходит тока рекурсия

может кто подсказать как мне собрать всю структуру P1 не важно какая у нее глубина и удалить все

может кто натыкался на какие то статейки в нете?
источник

DT

Denis Taranov in Django [ru] #STAY HOME
master-mn
всем привет,

столкнулся с задачкой
есть некая древовидная структура
у каждого элемента структуры есть поле parent_id которое указывает на id родителя за исключением первого уровня дерева у которого parent_id = 0

представим структуру:
P1
- C1.1
--- CC1.1.1
--- CC1.1.2
- C1.2
- C1.3
P2
P3

я хочу удалить P1 ну и логично надо удалить всех детей и детей детей и так далее - всю структуру P1 включительно

из урла я получаю id элемента P1, и дальше я собираю все элементы у которых parent_id = id элемента P1, а как дорваться на пример до CC1.1.1

на ум приходит тока рекурсия

может кто подсказать как мне собрать всю структуру P1 не важно какая у нее глубина и удалить все

может кто натыкался на какие то статейки в нете?
MPTT дерево, структура nested-sets, модуль django-mptt
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
master-mn
всем привет,

столкнулся с задачкой
есть некая древовидная структура
у каждого элемента структуры есть поле parent_id которое указывает на id родителя за исключением первого уровня дерева у которого parent_id = 0

представим структуру:
P1
- C1.1
--- CC1.1.1
--- CC1.1.2
- C1.2
- C1.3
P2
P3

я хочу удалить P1 ну и логично надо удалить всех детей и детей детей и так далее - всю структуру P1 включительно

из урла я получаю id элемента P1, и дальше я собираю все элементы у которых parent_id = id элемента P1, а как дорваться на пример до CC1.1.1

на ум приходит тока рекурсия

может кто подсказать как мне собрать всю структуру P1 не важно какая у нее глубина и удалить все

может кто натыкался на какие то статейки в нете?
использовать mptt и не изобретать велосипед?)
источник

DT

Denis Taranov in Django [ru] #STAY HOME
Nikolay Cherniy
там кстати вэлью еще должно быть
куда велью
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Denis Taranov
куда велью
ну в гет, поскольку совпадает название с именем поля приходит не только селф, объект но и значение которое в этом поле
можно например сделать
def get_user(self, obj, value):
       return value.username
источник

DT

Denis Taranov in Django [ru] #STAY HOME
а, поэл
источник

NS

Nik S in Django [ru] #STAY HOME
ух вы, не знаю как оно работает, но работает👍
user = serializers.StringRelatedField()
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Nik S
ух вы, не знаю как оно работает, но работает👍
user = serializers.StringRelatedField()
так я же скинул ссылку где все объесняется, оно просто возвращает стр связанного объекта
источник