首页 > 解决方案 > 视图...没有返回 HttpResponse 对象。它返回 None 代替 - django

问题描述

我尝试了几种方法来解决这个问题,但我不能..每次我得到它错误。项目已添加到数据库,但页面上返回错误消息。为什么“get_absolute_url”和“success_url”不起作用?

看法

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()

楷模

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')

标签: django

解决方案


从文档:

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) 

您需要添加退货行。


推荐阅读