' om de informatie
in je tweet in drie rijen weer te geven. Toon telkens links het label,
en rechts de informatie::
Message: So Epic React launched a swag store, and it includes
the most adorable merch I've ever seen.
Likes: 22
Timestamp: Oct. 4, 2021, 8:36 a.m.
Bootstrap badge
---------------
https://getbootstrap.com/docs/5.1/components/badge/
Open 'tweet_list.html' en zorg ervoor dat het aantal likes getoond wordt in een
'Bootstrap badge'.
Django truncatechars
--------------------
{{ tweet.msg|truncatechars:80 }}
Bootstrap buttons
-----------------
Bootstrap laat toe om HTML-elementen als button voor te stellen. Zo kan
je de '
' tags als knop tonen door de classes 'btn btn-primary' toe te voegen::
Link naar tweet 1
Bestudeer de code om de buttons in verschillende kleuren weer te geven op
onderstaande pagina:
https://getbootstrap.com/docs/5.1/components/buttons/
Open 'tweet_detail.html' en voeg een "Like" button toe aan de detail-pagina
van de tweet.
Django link-view
-------------------------
Open `tweet/views.py` en voeg onderstaande code toe::
from django.shortcuts import redirect
def like(request, pk):
tweet = Tweet.objects.get(pk=pk)
tweet.likes = tweet.likes + 1
tweet.save()
return redirect('/tweet')
Open `twitter/urls.py` en voeg onderstaande code toe::
from tweet.views import like
urlpatterns += [
# ...
path('like/
', like),
]
Django shell
---------------
Gebruik de admin om een aantal tweets in te voeren (minstens 4).
Installeer ipython via::
pip install ipython
Voer het volgende commando uit::
python manage.py shell
Je krijgt nu een Python shell waarin je commando's kan uitvoeren.
Voer eerst volgende regel in::
from tweet.models import Tweet
Nu kan je alle tweets opvragen via::
Tweet.objects.all()
Je kan de tweets sorteren via de `order_by` functie::
Tweet.objects.all().order_by("likes")
Om ze in omgekeerde volgorde te sorteren kan je een min-teken gebruiken bij de `order_by` functie::
Tweet.objects.all().order_by("-likes")
Je kan ook filters gebruiken om slechts bepaalde tweets te tonen. Met onderstaande regel
toon je enkel de tweets met minstens 2 likes::
Tweet.objects.filter(likes__gt=1)
Voor IntegerField bestaan zo o.a. de volgende filters:
- gt: groter dan
- gte: groter of gelijk aan
- lt: kleiner dan
- lte: kleiner dan of gelijk aan
Met onderstaande regel
toon je enkel de tweets met de letterlijke string "python" in de tweet::
Tweet.objects.filter(msg__icontains="python")
Voor IntegerField bestaan zo o.a. de volgende filters:
- contains: bevat de string (hoofdlettergevoelig)
- icontains: bevat de string waarbij hoofdletters en kleine letters als gelijk beschouwd worden
Je kan niet enkel lijsten tweets opvragen, je kan ook nieuwe objecten aanmaken::
Tweet.objects.create(msg="Yeah")