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
« 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
6# library_members, created = Group.objects.get_or_create(name="Library Members")
7# librarians, created = Group.objects.get_or_create(name="Librarians")
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 """
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)
22 def __str__(self):
23 return self.username 1bcdefghij
25 def get_absolute_url(self):
26 """Get URL for user's detail view.
28 Returns:
29 str: URL for user detail.
31 """
32 return reverse("user_detail", kwargs={"username": self.username}) 1k