@G_r_i_n_v_i_c_h

Как сделать единый template для всех однотипных операций CRUD?

Друзья, пытаюсь сделать один template для всех create, один для всех update и т.д.

Сейчас есть миксины, вида:
class ObjectCreateMixin(ObjectAuthMixin):
    form_name = None
    template = None

    def get(self, request):
      ....
    def post(self, request):
      ....

Есть куча views классов для каждой модели, вида:
class SupplierGroupCreateView(ObjectCreateMixin, View):
    form_name = SupplierGroupForm
    template = 'suppliergroup_create.html'

И соответственно набор шаблонов типа suppliergroup_create.html, supplier_create.html и т.д. Шаблоны получаются полностью идентичные, перебор в цикле по полям формы. Единственное отличие в урле action'а.
Хочу убрать вот эту кучу шаблонов и сделать, чтобы был единый шаблон create.html для всех моделей.
Единственная мысль, которая приходит в голову, создать урл:
path('create/<str:model>/', CreateView.as_view(), name="create_url"),

и в классе CreateView задать лист, который по ключу model будет давать название формы для миксина.
В таком случае, на сколько я понимаю, я в функции get получаю из request model, выставляю атрибут класса и вызываю get родителя из Миксина?
Или я вообще смотрю не туда и есть другой метод?

Спасибо.
  • Вопрос задан
  • 67 просмотров
Решения вопроса 1
tumbler
@tumbler Куратор тега Django
бекенд-разработчик на python
Единственное отличие в урле action'а.

Так передайте url экшна через контекст в шаблон.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы