6
DRY方法在我urls.py
我有一些條目這樣的: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'),
這重複了很多標準型號,我只是要得到的信息,列出它並能夠編輯和刪除的它。
在我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'
這一切都該模式後重復。因此,對於3款機型,我將擁有3次大部分相同的代碼,只需稍作更改。
我該如何停止重複自己?
我不知道,這個看起來很乾了。如果它變得乾燥,這將是一場乾旱:-) – e4c5
我想也許這三個意見,但只改變模型或什麼的,以及我可以嘗試把它放在urls.py,像generic_list視圖,但這似乎像DRY一樣,我可以讓它... –