Определите модель и форму с помощью параметров слага диспетчера URL

#python #django #forms #model #django-class-based-views

Вопрос:

У меня есть код в urls.py:

 from django.urls import path from tables.models import subcomponentsTable, rawMaterialsTable from tables.forms import subcomponentsTableForm, rawMaterialsTableForm  urlpatterns = [path('newEquipment',   views.createTableView.as_view(model=subcomponentsTable,form_class=subcomponentsTableForm),   name='newEquipment'),   path('newRawMaterial',  views.createTableView.as_view(model=rawMaterialsTable, form_class=rawMaterialsTableForm),  name='newRawMaterial'),   ... etc. ]  

и я хотел бы переработать его следующим образом, чтобы сделать его многоразовым для различных моделей и форм:

urlpatterns = [path('new/lt;slug:tableTypegt;', views.createTableView.as_view(), name='newInstance'),...

views.py:

 class createTableView(LoginRequiredMixin, CreateView):  template_name = 'tables/createTableTemplate.html'  

какой метод в createTableView я должен перегрузить, чтобы я мог вычислить соответствующую форму и модель из slug:tableType и использовать ее в своем представлении? Чтобы сделать это правильно? Будет ли какая-то разница между UpdateView и DeleteView? Заранее благодарю вас!

Комментарии:

1. A CreateView не заботится о слизняке, так как он создает объекты, и, следовательно, нет объекта для обновления, отображения и т. Д.