Listede çalışıyorum bir blog projesinde beklendiği gibi render almakta zorluk çekiyorum.ListView'de get_queryset() yöntemini kullanma, Django 1.9
aşağıdakiclass Post(models.Model):
(...)
tags = models.ManyToManyField(Tag)
views.py
yılında TagListView gibidir:
class TagListView(ListView):
def get_queryset(self):
slug = self.kwargs['slug']
try:
tag = Tag.objects.get(slug=slug)
return tag.post_set.all()
except Tag.DoesNotExist:
return Post.objects.none()
(models.py benim Mesaj modelinden) aşağıdaki gibi
Ben bir Mesaj modelinin bir parçası olan bir Etiket modeli var aşağıdaki gibi
url en url(r'^blog/?', include('blog.urls')),
olsa olduğu gibi aşağıdaki gibi projede dahil edildiği (geçerli:
url(r'^tag/(?P<slug>[a-zA-Z0-9-]+)?/?$', TagListView.as_view(
paginate_by=5,
model=Tag,
)),
Anladığım kadarıyla, bu örnekte, localhost:8000/blog/tag/<name-of-tag-here>
adresinde olması gereken bir URL'ye erişerek, view.py'de TagListView öğesini çağırır, daha sonra aynı sümüklü bir etiket içeren bir ListView gönderimi oluşturmak için get_queryset()
yöntemini kullanır. Daha sonra bir şablonu (/blog/templates/blog
'da) görüntülediğim öğreticide, tag_post_list.html
olarak adlandırılır, ancak - ListView'in bir şablon oluşturması için nasıl bir şablon bulduğu belirsizdir ve basit bir eğiticiyi takip ediyorum. .
Hangi değişkenlerin html şablonuna aktarıldığına ve bunlara nasıl erişileceğine dair biraz kafam karışık. Aldığım sonuçlardan, get_queryset()
'un aslında yalnızca aynı etiket listesiyle gönderilen yayınları geri almadığı açıktır. Furthermore, my css isn't rendering, either (which I've made a separate post for), base.html
dosyamdan diğer etiket ve elementlerin açıkça belli olmasına rağmen.
Şablon, {% extends 'base.html' %}
(/blog/templates/
'da bulunur) başlar ve {% for post in object_list %}
aracılığıyla gönderilen iletilere erişir. object_list
açıkçası, ne düşündüğüm kadarıyla, ListView'ın get_queryset()
yöntemini kötüye kullandığım şekilde olması gerektiğini düşündüğüm şeyi içermiyor.
Teşekkürler.
Burada bazı hata ayıklama yok. Bu görüşün aslında çağrıldığından emin oldunuz mu? Sülük argümanının doğru olduğundan emin oldunuz mu? Kod, get_queryset'e mi giriyor?Bu yöntemden iade edilenleri incelediniz mi? Tüm bunları hata ayıklayıcı ile yapabilir ya da sadece yazdırma ifadeleri koyarak ilgili noktalarıdır. –
Diğer her şeyden ayrı olarak, bu Etiketlerin değil, Gönderilerin bir listesidir, bu nedenle model Post olmalıdır. Bu olsa da, hiçbir şeyi etkilemez. –
'object_list' aslında neyi içerir? Hiçbir şey değil? Başka bir şey? – YPCrumble