1
所以,我有一個Django視圖,它基於django.views.generic.View
,它只接受POST
請求。它以application/x-www-form-urlencoded
格式進行基本調用,解析它們,然後根據需要進行響應。我意識到這是失敗的瘦身控制器,脂肪模型的想法,但我不確定放置以下邏輯的最佳位置,因爲它與視圖有關,而不是專門針對底層模型。Django視圖,邏輯和瘦身控制器
目前,視圖處理一些邏輯來創造新的訂閱:
class ExampleView(View):
def post(self, request, *args, **kwargs):
mode = request.POST.get('mode')
if not mode:
return HttpResponse('mode required', status=400)
if mode == 'subscribe':
if not request.POST.get('topic'):
return HttpResponse('topic required', status=400)
if not [ another required argument ]:
and so on ...
[ If we're ready to roll, create a Subscription object ]
return HttpResponse('Subscribed', status=200)
所以,這似乎對我來說,把邏輯錯誤的層。哪裏會是處理傳遞給視圖的內容的最佳位置,並根據需要生成/無法生成Subscription對象。
提供的數據是否應該在Subscription對象上進行處理,然後將HttpResponses返回給視圖?還是應該返回狀態'和消息,然後通過創建正確的HttpResponse對象的視圖中繼給用戶?
聽起來像是你可能能夠使用一個'ModelForm'做驗證,但它可能是矯枉過正。關於放置這種代碼的最佳位置是值得商榷的,所以任何答案都可能與任何其他答案一樣有效。 – Aya 2013-04-29 18:53:17