Jak wyświetlić ile rekordów jest w bazie?

20 views
Skip to first unread message

killerbees1982

unread,
Aug 5, 2017, 2:32:17 AM8/5/17
to django-pl - grupa polskiej społeczności Django
Witam wszystkich.
Mam pytanko odnośnie tego jak wyświetlić ile mam w bazie rekordów? Załóżmy że w Models.py mam dwie klasy tj. Kategorie oraz Witryny. Chcialbym teraz wyświetlające listę kategorii w nawiasach obok wyświetlić ile stron zostało dodane do danej kategorii. Tak jak to bywa w katalogach stron.

haloween

unread,
Aug 6, 2017, 3:28:39 AM8/6/17
to django-pl - grupa polskiej społeczności Django

killerbees1982

unread,
Aug 6, 2017, 6:28:06 AM8/6/17
to django-pl - grupa polskiej społeczności Django
Staram się właśnie użyć count() ale niestety nie wychodzi mi nic.
Taki mam models.py
from django.db import models
from django.utils import timezone


class Kategorie(models.Model):
    glowna
= models.CharField(max_length=150, verbose_name='Kategoria')

   
class Meta:
        verbose_name
='Kategoria'
        verbose_name_plural
='Kategorie'

   
def __str__(self):
       
return self.glowna


class Witryna(models.Model):
    nazwa
= models.CharField(default="", max_length=150, verbose_name = 'Nazwa strony')
    adres_www
= models.CharField(max_length=70, verbose_name='Adres www')
    slug
= models.SlugField(max_length=250, verbose_name='Przyjazny adres url')
    email
= models.CharField(max_length=100, verbose_name='Adres e-mail')
    text
= models.TextField(max_length=3000, verbose_name='Opis strony')
    kategoria
= models.ForeignKey(Kategorie, verbose_name='Kategoria')
    data_publikacji
= models.DateTimeField(blank=True, null=True, verbose_name='Data publikacji')

   
class Meta:
        verbose_name
='Strona www'
        verbose_name_plural
= 'Strony www'

   
def publikacja(self):
       
self.data_publikacji=timezone.now()
       
self.save()

   
def __str__(self):
       
return self.nazwa

Następnie w pliku urls.py
from django.conf.urls import url
from . import views

urlpatterns
= [
    url
(r'^strony$', views.widok_strony, name='widok_strony'),
    url
(r'^$', views.widok_kategorii, name='widok_kategorii'),
]

views.py
from django.shortcuts import render
from .models import Witryna, Kategorie
from django.utils import timezone
#from django.db.models import Count


def widok_strony(request):
    firmy
= Witryna.objects.filter(data_publikacji__lte=timezone.now()).order_by('data_publikacji')
   
return render(request, 'firmy/widok_strony.html', {'firmy': firmy})

def widok_kategorii(request):
    kategorie
= Kategorie.objects.all()
    wpisy_kat
= Kategorie.objects.count()
   
return render(request, 'firmy/widok_kategorii.html', {'kategorie': kategorie}

no i widok kategorii.html
{% extends 'firmy/base.html' %}

{% block kategorie %}


{%  for kategoria in kategorie %}

<table>
<tr>
<th>
<a href="#">{{ kategoria.glowna|linebreaksbr }}</a>({{ wpisy_kat }})
</th>
</
tr>
</table>
{%  endfor %}
{% endblock kategorie %}

I niestety nie wyświetla mi nic ... więc domyślam się że coś jest gdzieś źle tylko nie mogę namierzyć gdzie.

Maciej Januszewski

unread,
Aug 6, 2017, 6:34:36 AM8/6/17
to djan...@googlegroups.com
Wywal "kategorie" z endblock na końcu.

Wysłane z iPhone'a
--
Otrzymujesz tę wiadomość, bo subskrybujesz grupę „django-pl - grupa polskiej społeczności Django” w Grupach dyskusyjnych Google.
Aby anulować subskrypcję tej grupy i przestać otrzymywać od niej wiadomości, wyślij e-maila na django-pl+...@googlegroups.com.
Aby opublikować wpis w tej grupie, wyślij e-maila na djan...@googlegroups.com.
Otwórz tę grupę na https://groups.google.com/group/django-pl.
Więcej opcji znajdziesz na https://groups.google.com/d/optout.

killerbees1982

unread,
Aug 6, 2017, 6:45:25 AM8/6/17
to django-pl - grupa polskiej społeczności Django

Wywaliłem i nadal pusto.. tzn. nie pokazuje ile stron jest w danej kategorii

Maciej Januszewski

unread,
Aug 6, 2017, 7:06:17 AM8/6/17
to djan...@googlegroups.com
Ale w views nie zwracasz tego w context dict :) Musisz też dodać wpisy_kat do słownika.

Wysłane z iPhone'a

Dnia 06.08.2017 o godz. 12:45 killerbees1982 <killerb...@gmail.com> napisał(a):

Wywaliłem i nadal pusto.. tzn. nie pokazuje ile stron jest w danej kategorii

--

killerbees1982

unread,
Aug 6, 2017, 7:17:18 AM8/6/17
to django-pl - grupa polskiej społeczności Django
Kurczę Maciej nie bardzo rozumiem o czym piszesz. Jestem jeszcze na poziomie łopatologicznym i jak byś to mógł jaśniej napisać jak dla laika to byłbym wdzięczny :)

Maciej Januszewski

unread,
Aug 6, 2017, 7:26:22 AM8/6/17
to djan...@googlegroups.com
def widok_kategorii(request):
    kategorie 
= Kategorie.objects.all()
    wpisy_kat 
= Kategorie.objects.count()
    
return render(request, 'firmy/widok_kategorii.html', {'kategorie': kategorie}

Chodzi mi o to, że w słowniku zwracasz tylko kategorie. Musisz też zwrócić wpisy_kat, by móc je "zobaczyć" w template'cie.

Czyli:

return render(request, 'firmy/widok_kategorii.html', {'kategorie': kategorie, 'wpisy_kat': wpisy_kat}


W dniu 6 sierpnia 2017 13:17 użytkownik killerbees1982 <killerb...@gmail.com> napisał:
Kurczę Maciej nie bardzo rozumiem o czym piszesz. Jestem jeszcze na poziomie łopatologicznym i jak byś to mógł jaśniej napisać jak dla laika to byłbym wdzięczny :)

--
Otrzymujesz tę wiadomość, ponieważ subskrybujesz grupę dyskusyjną Google o nazwie „django-pl - grupa polskiej społeczności Django”.

Aby anulować subskrypcję tej grupy i przestać otrzymywać od niej wiadomości, wyślij e-maila na django-pl+unsubscribe@googlegroups.com.
Aby zamieszczać posty w tej grupie, wyślij e-mail na adres djan...@googlegroups.com.
Odwiedź tę grupę na https://groups.google.com/group/django-pl
Więcej opcji znajdziesz na https://groups.google.com/d/optout



--
Maciej Januszewski

Maciej Januszewski

unread,
Aug 6, 2017, 7:30:30 AM8/6/17
to djan...@googlegroups.com
I druga sprawa - w taki sposób wypiszesz za każdym razem taką samą wartość, czyli to, co zwraca Twój count.

Dla każdej kategorii będziesz miał taką samą liczbę. Pomyśl nad tym :)
--
Maciej Januszewski

killerbees1982

unread,
Aug 6, 2017, 7:37:53 AM8/6/17
to django-pl - grupa polskiej społeczności Django
Jasne rozumiem o co Ci chodzi a to jednak nie interes zwracać tą samą wartość dla różnych kategorii bo to sie mija z celem.

killerbees1982

unread,
Aug 6, 2017, 8:33:36 AM8/6/17
to django-pl - grupa polskiej społeczności Django
Maciej jest możliwość żebym zapytał się Ciebie coś poprzez maila?

Maciej Januszewski

unread,
Aug 6, 2017, 8:41:34 AM8/6/17
to djan...@googlegroups.com
Jestem w podróży. Wieczorem mogę coś tam podpowiedzieć :)

Wysłane z iPhone'a

Dnia 06.08.2017 o godz. 14:33 killerbees1982 <killerb...@gmail.com> napisał(a):

Maciej jest możliwość żebym zapytał się Ciebie coś poprzez maila?

--
Otrzymujesz tę wiadomość, bo subskrybujesz grupę „django-pl - grupa polskiej społeczności Django” w Grupach dyskusyjnych Google.
Aby anulować subskrypcję tej grupy i przestać otrzymywać od niej wiadomości, wyślij e-maila na django-pl+...@googlegroups.com.
Aby opublikować wpis w tej grupie, wyślij e-maila na djan...@googlegroups.com.
Otwórz tę grupę na https://groups.google.com/group/django-pl.
Więcej opcji znajdziesz na https://groups.google.com/d/optout.

killerbees1982

unread,
Aug 6, 2017, 8:43:42 AM8/6/17
to django-pl - grupa polskiej społeczności Django
Jakbyś mógł podać maila to z chęcią bym się Ciebie coś zapytał:)

Maciej Januszewski

unread,
Aug 6, 2017, 9:00:11 AM8/6/17
to djan...@googlegroups.com

W dniu 6 sierpnia 2017 14:43 użytkownik killerbees1982 <killerb...@gmail.com> napisał:
Jakbyś mógł podać maila to z chęcią bym się Ciebie coś zapytał:)

--
Otrzymujesz tę wiadomość, bo subskrybujesz grupę „django-pl - grupa polskiej społeczności Django” w Grupach dyskusyjnych Google.
Aby anulować subskrypcję tej grupy i przestać otrzymywać od niej wiadomości, wyślij e-maila na django-pl+unsubscribe@googlegroups.com.

Aby opublikować wpis w tej grupie, wyślij e-maila na djan...@googlegroups.com.
Otwórz tę grupę na https://groups.google.com/group/django-pl.
Więcej opcji znajdziesz na https://groups.google.com/d/optout.



--
Maciej Januszewski

killerbees1982

unread,
Aug 6, 2017, 9:09:50 AM8/6/17
to django-pl - grupa polskiej społeczności Django
Napisałem na maciej@ bo cos forum to nie wyświetla pełnych adresów. Mam nadzieje ze mail dojdzie
Reply all
Reply to author
Forward
0 new messages