我对 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 中)视图?