Coverage for learning_logs/models.py: 100.00%

21 statements  

« prev     ^ index     » next       coverage.py v7.16.2, created at 2026-10-12 08:03 -0700

1from django.contrib.auth import get_user_model 1a

2from django.db import models 1a

3from django.urls import reverse 1a

4 

5 

6class Topic(models.Model): 1a

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

8 

9 text = models.CharField(max_length=200) 1a

10 date_added = models.DateTimeField(auto_now_add=True) 1a

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

12 

13 def __str__(self): 1a

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

15 return self.text 1a

16 

17 def get_absolute_url(self): 1a

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

19 

20 

21class Entry(models.Model): 1a

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

23 

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

25 text = models.TextField() 1a

26 date_added = models.DateTimeField(auto_now_add=True) 1a

27 

28 class Meta: 1a

29 verbose_name_plural = "entries" 1a

30 

31 def __str__(self): 1a

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

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

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

35 else: 

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