gpt4 book ai didi

python - 使用相同的 Django 表单编辑/添加对象

转载 作者:行者123 更新时间:2023-12-04 14:38:42 35 4
gpt4 key购买 nike

我已经使用了 this question 的答案, 但出于某种原因,我没有得到好的结果。

我正在尝试对我的编辑表单和我的添加表单使用相同的模板。这是我的 urls.py:

url(r'^app/student/new/$', 'edit_student', {}, 'student_new'),
url(r'^app/student/edit/(?P<id>\d+)/$', 'edit_student', {}, 'student_edit'),

还有我的views.py:

def edit_student(request, id=None, template_name='student_edit_template.html'):
if id:
t = "Edit"
student = get_object_or_404(Student, pk=id)
if student.teacher != request.user:
raise HttpResponseForbidden()
else:
t = "Add"
student = Student(teacher=request.user)

if request.POST:
form = StudentForm(request.POST, instance=student)
if form.is_valid():
form.save()

# If the save was successful, redirect to another page
redirect_url = reverse(student_save_success)
return HttpResponseRedirect(redirect_url)

else:
form = StudentForm(instance=student)

return render_to_response(template_name, {
'form': form,
't': t,
}, context_instance=RequestContext(request))

还有我的forms.py:

class StudentForm(ModelForm):
class Meta:
model = Student
exclude = ('teacher',)

最后是我的模板 student_edit_template.html:

<h1>{{ t }} Student</h1>
<form action="/app/student/edit/{{ student.id }}" method="post"> {% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Submit" />
</form>

出于某种原因,这是抛出 404:

Page not found (404)
Request Method: POST
Request URL: http://192.168.1.3:5678/app/student/edit/

我可能在这里遗漏了一些简单的东西,但在这一点上我至少需要另一双眼睛来关注它。

提前致谢!

最佳答案

你得到 404 是因为 /student/edit/ 在尾端需要一个 id,否则没有路由,当你来自 /student/new/ 你还没有 id。为 /student/edit/ 创建路由和 View ,并在其中放置逻辑以处理在 POST 上创建记录时的情况。

关于python - 使用相同的 Django 表单编辑/添加对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10678249/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com