1 2021-10-11

1.1 Koppelen met de gebruikerstabel

Open tweet/models.py en voeg onderstaande code toe:

from django.contrib.auth.models import User

class Tweet(models.Model):
    msg = models.CharField(max_length=128)
    timestamp = models.DateTimeField(auto_now_add=True)
    likes = models.PositiveIntegerField(default=0)
    author = models.ForeignKey(User, on_delete=models.CASCADE, blank=True, null=True)

    def __str__(self):
        return self.msg

Maak migratiescripts en voer deze uit om de database aan te passen.

Het author-veld koppelt iedere individuele tweet met een gebruiker, zodat we nu meerdere gebruikers op onze twitter-variant kunnen onderscheiden.

1.2 Author tonen op detail pagina

Pas de detail-pagina aan zodat de auteur van de tweet op rij twee verschijnt:

Message:                So Epic React launched a swag store, and it includes
                        the most adorable merch I've ever seen.
Author:                 Takis
Likes:                  22
Timestamp:              Oct. 4, 2021, 8:36 a.m.

Voeg nu een tweede gebruiker aan je site toe met behulp van de admin. Voeg vervolgens enkele tweets per gebruiker aan het systeem toe.

1.3 Author tonen op list pagina

Pas ook de lijstpagina aan zodat de auteur bij elke tweet getoond wordt.

1.4 Emailadres tonen op detail pagina

Pas de detail-pagina aan zodat ook het emailadres van de auteur op rij twee verschijnt:

Message:                So Epic React launched a swag store, and it includes
                        the most adorable merch I've ever seen.
Author:                 Takis (takis.issaris@mosa-rt.be)
Likes:                  22
Timestamp:              Oct. 4, 2021, 8:36 a.

Je kan via “object.author” aan alle velden die je in de “User” class vindt op onderstaande pagina in de Django documentatie: https://docs.djangoproject.com/en/3.2/ref/contrib/auth/

1.5 Tweets van een auteur

Open tweet/views.py en voeg onderstaande code toe:

def author_tweets(request, pk):
    tweets = Tweet.objects.filter(author__pk=pk)
    return render(request, 'tweet/tweet_list.html', {'object_list': tweets})

Open twitter/urls.py en voeg onderstaande code toe:

from tweet.views import author_tweets

urlpatterns += [
        # ...
        path('author/<int:pk>', author_tweets),
]

Surf nu naar http://localhost:8000/author/1 Je krijgt nu alle tweets te zien van user met ID 1.