Coverage for account/models.py: 90.00%

20 statements  

« prev     ^ index     » next       coverage.py v7.16.2, created at 2026-10-14 21:14 -0700

1from django.conf import settings 1a

2from django.contrib.auth import get_user_model 1a

3from django.db import models 1a

4 

5 

6class Profile(models.Model): 1a

7 user = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE) 1a

8 date_of_birth = models.DateField(blank=True, null=True) 1a

9 photo = models.ImageField(upload_to="users/%Y/%m/%d/", blank=True) 1a

10 

11 def __str__(self): 1a

12 return f"Profile of {self.user.username}" 

13 

14 

15class Contact(models.Model): 1a

16 user_from = models.ForeignKey( 1a

17 "auth.User", related_name="rel_from_set", on_delete=models.CASCADE 

18 ) 

19 user_to = models.ForeignKey( 1a

20 "auth.User", related_name="rel_to_set", on_delete=models.CASCADE 

21 ) 

22 created = models.DateTimeField(auto_now_add=True) 1a

23 

24 class Meta: 1a

25 indexes = [ 1a

26 models.Index(fields=["-created"]), 

27 ] 

28 ordering = ["-created"] 1a

29 

30 def __str__(self): 1a

31 return f"{self.user_from} follows {self.user_to}" 

32 

33 

34# Add following field to User dynamically 

35user_model = get_user_model() 1a

36user_model.add_to_class( 1a

37 "following", 

38 models.ManyToManyField( 

39 "self", through=Contact, related_name="followers", symmetrical=False 

40 ), 

41)