Home > Enterprise >  The view ... didn't return an HttpResponse object. It returned None instead - django
The view ... didn't return an HttpResponse object. It returned None instead - django

Time:10-04

I tried several ways to solve the problem but I couldn't .. every time I got it error. Item added to DB but error message returned on page. why "get_absolute_url" and "success_url" do not work?

View

class AddItemView(CreateView):
model = Add_Item
form_class = AddItemForm
template_name ='add_item.html'
success_url = reverse_lazy("home")


def form_valid(self, form):
    self.object = form.save(commit=False)
    # Add_Item.User = User
    self.object.user = self.request.user
    self.object.save()

Models

class Add_Item(models.Model):
user = models.ForeignKey(User,on_delete=models.CASCADE, default=None, 
null=True)
title = models.CharField(max_length=255)
categories  = models.CharField(max_length=255 , choices=all_categories)
description = RichTextField(blank=True,null=True)
condition = models.CharField(max_length=100, choices=cond)
city = models.CharField(max_length=50, choices=cy.city, blank=True)
street = models.CharField(max_length=100, blank=True)
home_number = models.CharField(max_length=100, blank=True)
header_img = models.ImageField(null=True, blank=True, upload_to='img/')
more_img = models.ImageField(null=True, blank=True, upload_to='img/')
Pub_date = models.DateField(auto_now_add=True)

def __str__(self):
    return str(self.title)

def get_absolute_url(self):
    return reverse('home')

CodePudding user response:

From the docs:

def form_valid(self, form):
    # This method is called when valid form data has been POSTed.
    # It should return an HttpResponse.
    return super().form_valid(form) 

You need to add the return line.

  • Related