Nel mio urls.py
ho alcune voci come queste:approccio DRY per Django
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'),
Questo si ripete per un sacco di modelli standard in cui non mi resta che ottenere le informazioni, elencare ed essere in grado di modificare ed eliminare esso.
Nel mio 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'
Tutto si ripete dopo questo modello. Quindi per 3 modelli avrò un codice per lo più identico a 3 volte con modifiche minori.
Come posso smettere di ripetermi?
Non lo so, questo sembra abbastanza asciutto per me. Se diventa più secco sarà una siccità :-) – e4c5
Ho pensato a forse queste tre viste ma cambiando solo il Modello o qualcosa del genere, beh, potrei provare a mettere tutto nella urls.py, come la vista generic_list ma sembra piace come ASCIUTO come potrei farcela ... –