django の MVC に問題があります。これが従来の MVC ではないことは理解していますが、ドキュメントでは、実際にプレゼンテーションをビジネス ロジックから分離していることを強調しています。ただし、チュートリアルは次のようなコードになります。
def vote(request, poll_id):
p = get_object_or_404(Poll, id=poll_id)
try:
selected_choice = p.choice_set.get(id=request.POST['choice'])
except (KeyError, Choice.DoesNotExist):
return render_to_response('polls/detail.html',
{ 'poll': p, 'error_message': 'You didn''t select a choice.' } )
else:
selected_choice.votes += 1
selected_choice.save()
return HttpResponseRedirect(reverse('mysite.polls.views.results', args=(p.id,)))
return render_to_response('polls/vote.html', {'poll': p})
(これは私の実装であるため、チュートリアルとまったく同じではないかもしれませんが、概念は同じです)
この部分で、リクエストを処理し、(場合によっては) データベースにレコードを挿入します。
これは間違っていませんか?モデルのどこかにあるはずではありませんか?より複雑なシナリオではどうなりますか? 多くの db 集中型コードと最小限のプレゼンテーションでビューが乱雑になることはありませんか? 大規模なアプリケーションでは、(LOC のように) ビューがはるかに長くなりますか?