Size: a a a

Django [ru] #STAY HOME

2019 March 15

DN

Denis Nikolaev in Django [ru] #STAY HOME
class AppsSerializer(ModelSerializer):
   class Meta:
       model = Apps
       depth = 2
       fields = '__all__'


class CustomersWriteSerializer(ModelSerializer):
   user = PrimaryKeyRelatedField(queryset=User.objects.all())
   client_provider = PrimaryKeyRelatedField(queryset=ClientsAndProviders.objects.filter(provider__type__name='general',
                                                                               service__type__name='it_outsourcing'))
   apps = PrimaryKeyRelatedField(queryset=Apps.objects.all())

   class Meta:
       model = Customers
       fields = '__all__'
источник

DN

Denis Nikolaev in Django [ru] #STAY HOME
class AppViewSet(ModelViewSet):
   pagination_class = None
   queryset = Apps.objects.all()
   serializer_class = AppsSerializer


class CustomersViewSet(ModelViewSet):
   pagination_class = None
   queryset = Customers.objects.all()
   serializer_class = CustomersWriteSerializer
источник

DN

Denis Nikolaev in Django [ru] #STAY HOME
ну и вьюхи
источник

DN

Denis Nikolaev in Django [ru] #STAY HOME
в общем сейчас я получаю вот такой json
источник

E

Eldar in Django [ru] #STAY HOME
Denis Nikolaev
ну и вьюхи
На будущее такие большие куски кода лучше постить на гист или пастбин
источник

PB

Petr B. in Django [ru] #STAY HOME
И вообще, модели обычно в единственном числе называют...
источник

DN

Denis Nikolaev in Django [ru] #STAY HOME
Eldar
На будущее такие большие куски кода лучше постить на гист или пастбин
ок, просто сегодня пятница
источник

DN

Denis Nikolaev in Django [ru] #STAY HOME
Petr B.
И вообще, модели обычно в единственном числе называют...
исправлюсь
источник

DN

Denis Nikolaev in Django [ru] #STAY HOME
в общем  я сейчас формирую такой json
источник

DN

Denis Nikolaev in Django [ru] #STAY HOME
{
       "id": 2,
       "client_provider": {
           "id": 1,
           "client": {
               "id": 2,
               "name": "Рога и Копыта",
               "type": 3
           },
           "provider": {
               "id": 1,
               "name": "Крауд",
               "type": 20
           },
           "service": {
               "id": 5,
               "attributes": null,
               "type": 19,
               "parent": null
           }
       },
       "apps": {
           "id": 2,
           "name": "Домены"
       },
       "permission": true
   }
источник

DN

Denis Nikolaev in Django [ru] #STAY HOME
а мне нужен вот такой
источник

DN

Denis Nikolaev in Django [ru] #STAY HOME
[
 {
id: 1,
name: 'vasa'
apps: []
}
]
источник

DN

Denis Nikolaev in Django [ru] #STAY HOME
ну то есть нужно по clients сгруппировть apps
источник

D

Dmitry in Django [ru] #STAY HOME
Denis Nikolaev
[
 {
id: 1,
name: 'vasa'
apps: []
}
]
это список чего?
источник

D

Dmitry in Django [ru] #STAY HOME
или один объект
источник

DN

Denis Nikolaev in Django [ru] #STAY HOME
это список клиентов и вложенный список приложений этого клиента
источник

DN

Denis Nikolaev in Django [ru] #STAY HOME
то есть мне нужно выгрузить список клиентов и вложенный список приложений этого клиента
источник

D

Dmitry in Django [ru] #STAY HOME
Denis Nikolaev
ну то есть нужно по clients сгруппировть apps
сериализуй сначала app со всеми полями
class AppsSerializer(ModelSerializer):
   class Meta:
       model = Apps
       fields = 'all'
затем клиента
class CustomerSerializer(ModelSerializer):
apps = AppSerializer(many=True)
   class Meta:
       model = Customer
       fields = 'all'
источник

PB

Petr B. in Django [ru] #STAY HOME
Denis Nikolaev
[
 {
id: 1,
name: 'vasa'
apps: []
}
]
class CustomerSerializer(...):
   name = ReadonlyField(sourse='user.username'
   apps = AppSerializer(many=True)

  class Meta:
      model = Customer
      fields = ('id', 'name', 'apps')
источник

PB

Petr B. in Django [ru] #STAY HOME
Dmitry
сериализуй сначала app со всеми полями
class AppsSerializer(ModelSerializer):
   class Meta:
       model = Apps
       fields = 'all'
затем клиента
class CustomerSerializer(ModelSerializer):
apps = AppSerializer(many=True)
   class Meta:
       model = Customer
       fields = 'all'
__all__ и depth это то, что из дрф должно быть удалено кху ям
источник