我是 Django 新手,正在寻找我刚刚编写的代码的最佳实践(如下)。该代码当前存在于我的 view.py 中,只是创建了一个新事件。如果您知道我的意思,那么熟悉其他语言只会“闻起来很糟糕”。有人可以指出他们将如何完成这个简单的任务。
再次查看我的代码(并通过阅读更多文档)的唯一方法是将 request.user 移动到 models.py 保存函数中。
下面还有什么是新手的大错误吗?
@login_required
def event_new(request):
# If we had a POST then get the request post values.
if request.method == 'POST':
form = EventForm(request.POST)
# Check we have valid data
if form.is_valid():
# If form has passed all validation checks then continue to save it.
city = City.objects.get(name=form.cleaned_data['autocompleteCity'])
category = form.cleaned_data['category']
event = Event(
name=form.cleaned_data['name'],
details=form.cleaned_data['details'],
date=form.cleaned_data['date'],
start=form.cleaned_data['start'],
end=form.cleaned_data['end'],
category=category,
city=city,
user=request.user,
)
event.save()
messages.add_message(request, messages.SUCCESS, 'Event has been created.')
return HttpResponseRedirect('/events/invite/')
else:
messages.add_message(request, messages.ERROR, 'Error')
context = {'form': form}
return render_to_response('events/event_edit.html', context, context_instance=RequestContext(request))
else:
form = EventForm
context = {'form': form}
return render_to_response('events/event_edit.html', context, context_instance=RequestContext(request))