Hi Folks,
Actually I have one Primary Table called CustomUser and I'm extending this model as Foreign Key in UserContactDetails model. So now basically one user have multiple contact details. But whenever I'm applying filter on Primary Table field as well as Foreign Key table field, this queryset is returnning multiple Object inside queryset, like If my ContactDetails have 3 numbers of record for a user then it's returning the same record 3 number of times inside queryset, can you guys tell me, How can I solve this problem? I almost spend three hours on it, please help me.
models.py
----------------
class CustomUser(AbstractBaseUser, PermissionsMixin):
email = models.EmailField(_('email address'), unique=True)
company_name = models.CharField(max_length = 150)
sap_code = models.CharField(max_length = 150)
is_staff = models.BooleanField(default=False)
is_active = models.BooleanField(default=True)
date_joined = models.DateTimeField(default=timezone.now)
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = []
objects = CustomUserManager()
class UserContactDetails(models.Model):
user_details = models.ForeignKey(CustomUser,
related_name = 'usercontactdetailes',
related_query_name = 'usercontactdetaies',
on_delete = models.CASCADE)
address = models.CharField(max_length = 150)
mobile_no = models.CharField(max_length = 150)
primary_contact = models.BooleanField(default = False)
views.py
--------------------
query = request.GET.get('param')
user_data = CustomUser.objects.filter(
Q(usercontactdetaies__address = query)|
Q(usercontactdetaies__mobile_no = query)|
Q(company_name__exact = query) |
Q(sap_code__exact = query)
)
Instead of returnning one matched object inside queryset it's returnning three matched object because I have three contact details for this user.
Thank you in advance
Regards,
Soumen Khatua