所以,我有一个基于 的 Django 视图,django.views.generic.View
它只接受POST
请求。它以某种application/x-www-form-urlencoded
格式接受基本调用,解析它们,然后根据需要做出响应。我意识到这在瘦控制器、胖模型的想法上失败了,但我不确定放置以下逻辑的最佳位置,因为它与视图相关,而不是专门与底层模型相关。
目前,视图处理一些逻辑来创建新的订阅:
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 对象上处理提供的数据,然后将 HttpResponses 返回给视图?还是应该只返回状态和消息,然后由创建正确 HttpResponse 对象的视图转发给用户?