我正在使用此处找到的代码(SO.com) 使用相同的模板来添加和编辑记录,但是当我添加新记录并单击提交时,我在 URL 上得到一个 404 http://192.168.1.3:5678/app/student/edit/None/
,而我不是完全确定为什么。
这是我的相关部分urls.py
:
url(r'^app/lesson/new/$', 'edit_lesson', {}, 'lesson_new'),
url(r'^app/lesson/edit/(?P<id>\d+)/$', 'edit_lesson', {}, 'lesson_edit'),
这是我的相关部分views.py
:
def edit_lesson(request, id=None, template_name='lesson_edit_template.html'):
if id:
t = "Edit"
lesson = get_object_or_404(Lesson, pk=id)
stu = get_object_or_404(Student, pk=sid)
if stu.teacher != request.user:
raise HttpResponseForbidden()
else:
t = "Add"
lesson = Lesson()
if request.POST:
form = LessonForm(request.POST, instance=lesson)
if form.is_valid():
form.save()
# If the save was successful, redirect to another page
return view_lessons(request)
else:
form = LessonForm(instance=lesson)
return render_to_response(template_name, {
'form': form,
't': t,
'lesson': lesson,
}, context_instance=RequestContext(request))
最后,这是我的模板:
<h1>{{ t }} Lesson</h1>
<form action="/app/lesson/edit/{{ lesson.id }}/" method="post"> {% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Submit" />
</form>
我确定我错过了一些非常简单的东西,但我似乎无法找到它。如果这有什么不同,我正在使用 Django 1.3.1。
谢谢,MC