Представление не возвратило объект HttpResponse. Вместо этого он вернул None

У меня есть следующий простой вид. Почему это приводит к этой ошибке?

The view auth_lifecycle.views.user_profile didn't return an HttpResponse object. It returned None instead.

"""Renders web pages for the user-authentication-lifecycle project."""
from django.shortcuts               import render
from django.template                import RequestContext
from django.contrib.auth            import authenticate, login

def user_profile(request):
    """Displays information unique to the logged-in user."""

    user = authenticate(username='superuserusername', password='sueruserpassword')
    login(request, user)

    render(request, 'auth_lifecycle/user_profile.html',
           context_instance=RequestContext(request))

Ответы

Ответ 1

Поскольку представление должно возвращать render, а не просто вызвать его. Измените последнюю строку на

return render(request, 'auth_lifecycle/user_profile.html',
           context_instance=RequestContext(request))

Ответ 2

У меня была такая же ошибка с помощью UpdateView

У меня было это:

if form.is_valid() and form2.is_valid():
    form.save()
    form2.save()
    return HttpResponseRedirect(self.get_success_url())

и я решил просто сделать:

if form.is_valid() and form2.is_valid():
    form.save()
    form2.save()
    return HttpResponseRedirect(reverse_lazy('adopcion:solicitud_listar'))

Ответ 3

if qs.count()==1:
        print('cart id exists')
        if ....

else:    
        return render(request,"carts/home.html",{})

Такой тип кода также вернет вам ту же ошибку, потому что из намерений в качестве оператора возврата должно быть для другого, а не для оператора if.

Код выше можно изменить на

if qs.count()==1:
        print('cart id exists')
        if ....

else:   

return render(request,"carts/home.html",{})

Это может решить такие проблемы

Ответ 4

Я новичок в Python и пытаюсь сохранить изображения продуктов в базу данных, но это не работает.   Может кто-нибудь мне помочь!   Addproduct.py                              {% if msg%}                   

{{msg}}

              {% ENDIF%}                    Поля, отмеченные *, являются обязательными                                             {% Csrf_token%}               {{}} Form.as_p                                  Наименование товара: *                                  
                                 Описание продукта: *                                                                      Изображение продукта:                                                                                       Ссылка на YouTube: *                                                                    Статус продукта: *                                       Выберите статус продукта                    активный                    Нет в наличии                    Распродано                                                                                                         forms.py:           из форм импорта Django   из .models import *   из .models import Addproduct

class AddForm(forms.Form):
    post = forms.CharField()

class Meta: 
    model = Addproduct 
    fields = ['Pname','Pdesc','Ylink','PStatus','Pimage'] 

models.py:
         class Addproduct(models.Model):
    Pname = models.CharField(max_length=100)
    Pdesc = models.CharField(max_length=10000)
    Ylink = models.TextField()
    PStatus = models.TextField()
    Pimg = models.ImageField(upload_to='images')

    def __str__(self):
        return self.Addproduct  

view.py:
       def add(request):
    if request.method == 'POST':
        form = AddForm(request.POST, request.FILES)
        if form.is_valid():
            Pname=form.Pname.data['Pname']
            Pdesc=form.Pdesc.data['Pdesc']
            Ylink=form.Ylink,data['Ylink']
            PStatus=form.PStatus.data['PStatus']
            form.save()
            msg = "You have entered data Successfully!"
            return render(request,'user/Addproduct.html',{'msg':msg})
        else:
            return render(request,'user/Addproduct.html')