Coverage for accounts/models.py: 100.00%

14 statements  

« prev     ^ index     » next       coverage.py v7.17.0, created at 2026-10-29 09:37 -0700

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

2from django.db import models 1a

3from django.urls import reverse 1a

4from django_countries.fields import CountryField 1a

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): 1a

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) 1a

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

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

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

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

21 

22 def __str__(self): 1a

23 return self.username 1a

24 

25 def get_absolute_url(self): 1a

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}) 1a