我想让ListView工作。 我想要一个显示模型中所有对象的视图。像一个索引页面。
当我通过它的DetailView查找对象时,slug和页面正常工作 这个listview给了我错误:
在/ oferto / listview /
找不到页面(404)
ofertoj.views
class OfertoListView(ListView):
model = Oferto
class OfertoHome(ListView):
model = Oferto
def get_context_data(self,**kwargs):
context = Oferto.objects.all()
return context
urls.py
url(
regex=r"^$",
view = OfertoHome.as_view(),
name ="oferto_home"
),
url(
regex=r"listview/$",
view=OfertoListView.as_view(),
name="oferto_listview"
),
models.py
class Oferto(models.Model):
user = models.ForeignKey(User)
name = models.CharField(max_length=150)
description = models.TextField(max_length=3000)
slug = AutoSlugField(('slug'), max_length=128, unique=True, populate_from=('name',))
tags = tagging.fields.TagField()
image = models.ImageField(upload_to='Ofertoj',blank=True, null=True)
def get_absolute_url(self):
return reverse('oferto_detail', kwargs={'slug': self.slug})
def __unicode__(self):
return self.name
def get_tags(self):
return Tag.objects.get_for_object(self)
parent urls.py
(r'^oferto/',include('ofertoj.urls')),
答案 0 :(得分:0)
有一点是:
您正在使用context
视图中的QuerySet替换oferto_home
:
def get_context_data(self,**kwargs):
context = Oferto.objects.all()
return context
应该是这样的:
def get_context_data(self,**kwargs):
context = super(OfertoHome, self).get_context_data(**kwargs)
return context
默认情况下,ListView应检索所有对象
您的urls.py是否已命名?如果没有,我相信,你的网址可能是
url(
regex=r"^listview/$",
view=OfertoListView.as_view(),
name="oferto_listview"
),
以上网址可在/listview/
如果你想在appname前加上你可以创建一个url命名空间,或者明确地使用url中的oferta
,如:
regex=r"^ofertta/listview/$",