In meinem urls.py
habe ich einige Einträge wie diese:DRY Ansatz für 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'),
Dies wiederholt sich für eine Vielzahl von Standard-Modelle, bei denen ich nur noch die Informationen zu erhalten, geben Sie es und in der Lage sein, zu bearbeiten und löschen es.
In meinem 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'
Es alle Wiederholungen nach diesem Muster. Also für 3 Modelle werde ich 3 mal den gleichen Code haben mit nur kleinen Änderungen.
Wie kann ich aufhören mich zu wiederholen?
Ich weiß nicht, das sieht mir ziemlich trocken. Wenn es trockener wird, wird es eine Trockenheit :-) – e4c5
Ich dachte an vielleicht diese drei Ansichten, aber nur das Modell oder etwas ändern, nun könnte ich versuchen, alles in die URLs.py, wie die generic_list Ansicht, aber das scheint So trocken, wie ich es schaffen könnte ... –