Size: a a a

Django [ru] #STAY HOME

2021 May 25

DN

Damir Nafikov in Django [ru] #STAY HOME
есть метод get_user_model
источник

AD

Alex Dem in Django [ru] #STAY HOME
да, похоже :(

не хватает времени поискать нормально, но у меня на фронтах есть получение чойсов напрямую с апи

$http({
           method: 'OPTIONS',
           url: django_url_reverse(listApiUrlName);
       })

...

fieldsOptions = response.data.actions.POST

никаких спецовых свистоперделок нет, DRF сам генерит ответы для OPTIONS, то есть надо просто поискать соответствующий метод
источник

DN

Damir Nafikov in Django [ru] #STAY HOME
очень надеюсь, что есть)
я кнш смотрел у drf_spectacular класс AutoSchema, так как у него есть этот метод, но блин до него добраться - спецом написать отдельный файл, хотя я просто хочу описание класса(
спасибо)
источник

HA

Horatio A. in Django [ru] #STAY HOME
Это же по идее хорошо, когда так, инкапсуляция че 😂
источник

DN

Damir Nafikov in Django [ru] #STAY HOME
да там инитиь что-то, какие-то поля блин еще указывать дополнительно)
лееннь
но вижимо придется попотеть, тк много времени на поиск ушло)
источник

A

Akhma in Django [ru] #STAY HOME
Привет, как вы боретесь с накапливанием кастомных методов в модели?
источник

DN

Damir Nafikov in Django [ru] #STAY HOME
если связаны с фильтрами запросов, то переношу на objects
а так ООП, SOLID
источник

AD

Alex Dem in Django [ru] #STAY HOME
meta = self.metadata_class().determine_metadata(request, self)
meta["actions"]["POST"]["some_field"]

-> OrderedDict([('type', 'field'), ('required', False), ('read_only', False), ('label', 'Some field')])
источник

DN

Damir Nafikov in Django [ru] #STAY HOME
у меня ощущение, что он генерится при самом запросе👀
источник

DN

Damir Nafikov in Django [ru] #STAY HOME
зачем ему, интересно, request
источник

AD

Alex Dem in Django [ru] #STAY HOME
(останется только сериалазовать)

вот как организован options метод в drf

   def options(self, request, *args, **kwargs):
       """
       Handler method for HTTP 'OPTIONS' request.
       """
       if self.metadata_class is None:
           return self.http_method_not_allowed(request, *args, **kwargs)
       data = self.metadata_class().determine_metadata(request, self)
       return Response(data, status=status.HTTP_200_OK)
источник

D

DukeNsk in Django [ru] #STAY HOME
Путем выноса их в сервисный слой и менеджеры моделей
источник

A

Akhma in Django [ru] #STAY HOME
Шикарно, спасибо за ответы 👍
источник

AD

Alex Dem in Django [ru] #STAY HOME
и вот, собственно, что отдает self.options(request) после сериализации
источник

DN

Damir Nafikov in Django [ru] #STAY HOME
а о
хммм
жеесть, прикольно
сейчас попробую)
источник

AD

Alex Dem in Django [ru] #STAY HOME
да, очень крутая фича
меня сильно выручило когда я писал динамические селекты на JS
модалочка открылась, запрос на сервер пошел, чойсы загрузили, селекты отрендерили
пэсня
источник

DN

Damir Nafikov in Django [ru] #STAY HOME
хмм, я вот вызвал в list, но чет не то
источник

DN

Damir Nafikov in Django [ru] #STAY HOME
источник

DN

Damir Nafikov in Django [ru] #STAY HOME
это внутри ViewSet
источник

AD

Alex Dem in Django [ru] #STAY HOME
a["actions"]["POST"] - так такого?
источник