Coverage for accounts/models.py: 100.00%

14 statements  

« prev     ^ index     » next       coverage.py v7.9.1, created at 2025-06-13 15:39 -0700

1from django.contrib.auth.models import AbstractUser, Group # noqa: F401 

2from django.db import models 

3from django.urls import reverse 

4from django_countries.fields import CountryField 

5 

6# library_members, created = Group.objects.get_or_create(name="Library Members") 

7# librarians, created = Group.objects.get_or_create(name="Librarians") 

8 

9 

10class CustomUser(AbstractUser): 

11 """Custom user model for library project. 

12 If adding fields that need to be filled at user signup, 

13 check forms.SignupForm and forms.SocialSignupForms accordingly. 

14 """ 

15 

16 name = models.CharField("Name of User", blank=True, max_length=255) 

17 age = models.PositiveIntegerField(null=True, blank=True) 

18 bio = models.TextField("Bio", blank=True) 

19 profile_pic = models.ImageField(upload_to="profile_pics/", blank=True) 

20 country = CountryField("Country", blank=True) 

21 

22 def __str__(self): 

23 return self.username 1bcdefghij

24 

25 def get_absolute_url(self): 

26 """Get URL for user's detail view. 

27 

28 Returns: 

29 str: URL for user detail. 

30 

31 """ 

32 return reverse("user_detail", kwargs={"username": self.username}) 1k