In my urls.py , I have several such entries:
url(r'auftragsarten/list/$', generic.ListView.as_view( queryset=Auftragsart.objects.order_by('name'), paginate_by=25), name='auftragsarten_liste'), url(r'^auftragsarten/form/$', views.auftragsarten_form, name='auftragsarten_form'), url(r'auftragsarten/update/(?P<pk>[\d]+)/$', views.AuftragsartUpdateView.as_view(), name='auftragsarten_update'), url(r'auftragsarten/delete/(?P<pk>[\d]+)/$', views.AuftragsartDeleteView.as_view(), name='auftragsarten_delete'),
This is repeated for many standard models, where I just need to get information, list it and be able to edit and delete it.
In my views.py :
def auftragsarten_form(request): form = AuftragsartenForm(request.POST or None) if form.is_valid(): form.save() return redirect('auftragsverwaltung:auftragsarten_liste') else: print(form.errors) return render(request, 'generic_form_template.html', {'form': form}) class AuftragsartUpdateView(UpdateView): model = Auftragsart fields = '__all__' success_url = reverse_lazy('auftragsverwaltung:auftragsarten_liste') template_name = 'generic_update_view.html' class AuftragsartDeleteView(DeleteView): model = Auftragsart success_url = reverse_lazy('auftragsverwaltung:auftragsarten_liste') template_name = 'generic_confirm_delete.html'
Everything repeats after this pattern. So for 3 models I will have 3 times more identical code with minor changes.
How can I stop repeating myself?
source share