Coverage for learning_logs/models.py: 100.00%

21 statements  

« prev     ^ index     » next       coverage.py v7.10.6, created at 2025-08-31 09:09 -0700

1from django.contrib.auth import get_user_model 

2from django.db import models 

3from django.urls import reverse 

4 

5 

6class Topic(models.Model): 

7 """A topic the user is learning about.""" 

8 

9 text = models.CharField(max_length=200) 

10 date_added = models.DateTimeField(auto_now_add=True) 

11 owner = models.ForeignKey(get_user_model(), on_delete=models.CASCADE) 

12 

13 def __str__(self): 

14 """Return a string representation of the model.""" 

15 return self.text 1defg

16 

17 def get_absolute_url(self): 

18 return reverse("topic", args=[str(self.id)]) 1h

19 

20 

21class Entry(models.Model): 

22 """Something specific learned about a topic.""" 

23 

24 topic = models.ForeignKey(Topic, on_delete=models.CASCADE) 

25 text = models.TextField() 

26 date_added = models.DateTimeField(auto_now_add=True) 

27 

28 class Meta: 

29 verbose_name_plural = "entries" 

30 

31 def __str__(self): 

32 """Return a string representation of the model.""" 

33 if len(self.text[:]) < 50: 1bc

34 return f"{self.text}" 1b

35 else: 

36 return f"{self.text[:50]}..." 1c