【问题标题】:View error didn't return an HttpResponse object查看错误未返回 HttpResponse 对象
【发布时间】:2014-03-18 19:12:40
【问题描述】:

我正在为 django 中的视图工作,我目前正在处理模型表单:我检查学生是否已创建,如果已创建,我将只更新该学生的信息,并在必要时添加特定事件的条目;如果不是,我创建一个学生并添加到事件的条目。

网页在我创建一个新学生的情况下工作正常,除了第一次尝试之外,但是当我尝试获取已经存在的学生时,页面给了我没有返回 HttpResponse 对象的错误。你能帮帮我吗?

def reserve(request, event_id):
  event = get_object_or_404(Event, pk=event_id)

  if request.method == 'POST':
    form = StudentForm(request.POST)

    if form.is_valid():
      try:
        student = Student.objects.filter(UID=form.cleaned_data['UID'])
        #student.first_name=form.cleaned_data['first_name']
        #student.last_name=form.cleaned_data['last_name']
        msg = 'Student found, added to reserve for this event!'
      except Student.DoesNotExist:
        student = Student.objects.create(UID=form.cleaned_data['UID'], first_name=form.cleaned_data['first_name'], last_name=form.cleaned_data['last_name'])
        msg = 'Contact created, reserve successful!'

      obj, created = Reservetoevent.objects.get_or_create(m_event=event, m_student = student)
    return render(request, 'events/reserve.html', {
      'form': form,
      'event': event,
      'msg': msg,
    }) 
  else:
    form = StudentForm()


    return render(request, 'events/reserve.html', {
      'form': form,
      'event': event,
    }) 

【问题讨论】:

  • 您是通过 ajax 发布还是通过常规整页发布?

标签: django django-models django-views


【解决方案1】:

你的form.is_valid(): 是假的。因为您最后一次返回在else 中(意思是 request.method == "GET"),所以没有响应。 将最后一次返回向左移动。那应该解决它。但它不会解决您的表单无效的原因。

def reserve(request, event_id):
  event = get_object_or_404(Event, pk=event_id)

  if request.method == 'POST':
    form = StudentForm(request.POST)

    if form.is_valid():
      try:
        student = Student.objects.filter(UID=form.cleaned_data['UID'])
        #student.first_name=form.cleaned_data['first_name']
        #student.last_name=form.cleaned_data['last_name']
        msg = 'Student found, added to reserve for this event!'
      except Student.DoesNotExist:
        student = Student.objects.create(UID=form.cleaned_data['UID'], first_name=form.cleaned_data['first_name'], last_name=form.cleaned_data['last_name'])
        msg = 'Contact created, reserve successful!'

      obj, created = Reservetoevent.objects.get_or_create(m_event=event, m_student = student)
    return render(request, 'events/reserve.html', {
      'form': form,
      'event': event,
      'msg': msg,
    }) 
  else:
    form = StudentForm()


return render(request, 'events/reserve.html', {
  'form': form,
  'event': event,
}) 

【讨论】:

    猜你喜欢
    • 2013-08-08
    • 2014-07-27
    • 1970-01-01
    • 1970-01-01
    • 2018-10-30
    • 1970-01-01
    • 2016-07-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多