Size: a a a

Django [ru] #STAY HOME

2020 April 28

AG

Artem Gubatenko in Django [ru] #STAY HOME
Denis Melnikov
В простой функции, я бы просто вызвал функцию main ( в которой возврат идет render ) и передал бы ей **kwargs и все..

С классом, я чет не понимаю, что вызвать.
не понимаю: зачем дергать функцию которая рендерит что-то через render()

если мне нужно пропустить шаблон через шаблонизатор, я использую Template|Context
источник

AI

Anton Igin in Django [ru] #STAY HOME
Михаил Павлов
Но вообще если все так, то наверное причина отказа в чем-то другом.
да там много бреда или субъективщины. им не понравилось, что я апишку в отдельную аппку вынес. что не просто два сериализатора, а еще в абстрактный общие поля и методы вынес. оказывается, избегание копипаста полей и методов - это оверинжиниринг.
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Алексей
вложенность, да, но как отфильтровать-то? тут что-то должно быть вроде прокидывания данных, как в подзапросах с OuterRef
там используется F("field name")
источник

А

Алексей in Django [ru] #STAY HOME
Artem Gubatenko
там используется F("field name")
хм, подумаю, можно ли это прикрутить к этому случаю, спасибо
источник

МП

Михаил Павлов... in Django [ru] #STAY HOME
Anton Igin
да там много бреда или субъективщины. им не понравилось, что я апишку в отдельную аппку вынес. что не просто два сериализатора, а еще в абстрактный общие поля и методы вынес. оказывается, избегание копипаста полей и методов - это оверинжиниринг.
😂
источник

DM

Denis Melnikov in Django [ru] #STAY HOME
Artem Gubatenko
не понимаю: зачем дергать функцию которая рендерит что-то через render()

если мне нужно пропустить шаблон через шаблонизатор, я использую Template|Context
даже хз что ответить =)
Ну вот такой функционал есть у джанги, return render()
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Denis Melnikov
даже хз что ответить =)
Ну вот такой функционал есть у джанги, return render()
я пользуюсь когда вьюхи на функциях
возможно я не верно тебя понял)
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Denis Melnikov
даже хз что ответить =)
Ну вот такой функционал есть у джанги, return render()
в CBV вьюхах, обычно не нужно самому дергать render() или что-то похожее: если переопределил метод get()|post()|..., то просто верни super()...

обычно этого хватает
источник

T

Tim in Django [ru] #STAY HOME
в классах render_to_response вроде бы
источник

T

Tim in Django [ru] #STAY HOME
которая просто принимает context
источник

MG

Marat Gizz in Django [ru] #STAY HOME
Всем привет! Прошу помощи)

https://dpaste.org/07Gr
Есть такие модели, из которых я формирую список заметок пользователя и отдаю через DRF (с этим все ОК). Проблема в том, что к объекту заметки мне нужно как-то добавить список всех категорий данного пользователя (для вывода в форме).
Где можно реализовать добавление этого списка - в модели, сериализаторе или еще где? Перепробовал разные варианты, но пока ничего не заработало(
источник

DM

Denis Melnikov in Django [ru] #STAY HOME
Tim
в классах render_to_response вроде бы
ммм, попробую глянуть. Возможно решение
источник

DM

Denis Melnikov in Django [ru] #STAY HOME
Artem Gubatenko
в CBV вьюхах, обычно не нужно самому дергать render() или что-то похожее: если переопределил метод get()|post()|..., то просто верни super()...

обычно этого хватает
вот как на функциях было
https://pastebin.com/4tqbXGQ5

AppIP просто вызвает mainpae и отдает ей новый контекст
источник

AI

Anton Igin in Django [ru] #STAY HOME
Marat Gizz
Всем привет! Прошу помощи)

https://dpaste.org/07Gr
Есть такие модели, из которых я формирую список заметок пользователя и отдаю через DRF (с этим все ОК). Проблема в том, что к объекту заметки мне нужно как-то добавить список всех категорий данного пользователя (для вывода в форме).
Где можно реализовать добавление этого списка - в модели, сериализаторе или еще где? Перепробовал разные варианты, но пока ничего не заработало(
делай по отдельности: результаты в одной кучке, категории для списка в поле формы  - в другой
источник

T

Tim in Django [ru] #STAY HOME
Denis Melnikov
вот как на функциях было
https://pastebin.com/4tqbXGQ5

AppIP просто вызвает mainpae и отдает ей новый контекст
так вроде все просто
источник

T

Tim in Django [ru] #STAY HOME
Tim
так вроде все просто
class TemplateView(TemplateResponseMixin, ContextMixin, View):
   """
   Render a template. Pass keyword arguments from the URLconf to the context.
   """
   
def get(self, request, *args, **kwargs):
       context = self.get_context_data(**kwargs)
       return self.render_to_response(context)

вот тут свой код исполняй
имеею ввиду используй TemplateView и перепопредели метод get
источник

А

Алексей in Django [ru] #STAY HOME
Artem Gubatenko
там используется F("field name")
так а как мне воспользоваться F("parent_field") в Prefetch'е?
источник

DM

Denis Melnikov in Django [ru] #STAY HOME
Tim
class TemplateView(TemplateResponseMixin, ContextMixin, View):
   """
   Render a template. Pass keyword arguments from the URLconf to the context.
   """
   
def get(self, request, *args, **kwargs):
       context = self.get_context_data(**kwargs)
       return self.render_to_response(context)

вот тут свой код исполняй
имеею ввиду используй TemplateView и перепопредели метод get
Template сейчас изпользуется как главный метод рендера страницы. Тут понятно.
Я не оч понимаю, что делать с функцией, что она должна вернуть и как отдать контекст классу...
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Denis Melnikov
вот как на функциях было
https://pastebin.com/4tqbXGQ5

AppIP просто вызвает mainpae и отдает ей новый контекст
я заметил что ты любишь переиспользовать вьюхи (функции)
лично я, во вьюхах, так не делаю. Если нужно: выношу бизнес-логику куда-нибудь отдельно

В простых случаях мне хватает вьюхи как в примере:
https://docs.djangoproject.com/en/3.0/topics/class-based-views/generic-display/#adding-extra-context
ни какой render() я сам не вызываю. Мне пофиг вообще как он там вызывается: я дал данные в контекст и жду что они появятся в шаблоне

А в твоем случае можно точно также вызывать return mainpage(request,**data) из отвечающего метода (get()|post()|...
источник

T

Tim in Django [ru] #STAY HOME
Denis Melnikov
Template сейчас изпользуется как главный метод рендера страницы. Тут понятно.
Я не оч понимаю, что делать с функцией, что она должна вернуть и как отдать контекст классу...
ну у тебя будет два класса view
один для addip - можешь в таком виде оставить или переписать на класс, используя generic.View.
второй для mainpage (TemplateView)

в классе addip пишешь метод get и делаешь такой же редирект как у тебя сейчас
либо так
https://stackoverflow.com/questions/51155947/django-redirect-to-another-view-with-context

в mainpage также переопределяешь метод get

а по сути просто копируешь свой код в методы get классов
источник