0

Following is a simplified models.py of one of the apps of my Django program:

#This is the custom queryset manager

class TenantManager(models.Manager):
def for_tenant(self, tenant):
    return self.get_queryset().filter(tenant=tenant)

#This is one of the models:

class accountChart(models.Model):
    name=models.CharField(max_length =200)
    remarks=models.TextField(blank=True)
    key=models.CharField(max_length=20)
    tenant=models.ForeignKey(Tenant,related_name='accountchart_account_user_te nant')     
    objects = TenantManager()

  #This is another data model, related ith FK to 1st model shown here

  class paymentMode(models.Model):
    name = models.TextField('Payment Mode Name')
     payment_account=models.ForeignKey(accountChart,related_name='paymentMode_accountChart')
    default=models.CharField('Default Payment Mode ?', max_length=3,choices=choice, default="No")
    tenant=models.ForeignKey(Tenant,related_name='paymentmode_account_user_tenant')
    objects = TenantManager()

Now, I'm doing the following queryset based on user inout. However, Django is throwing up errors. Request your kind help, as this thing is killing me for more than 2 days.

#Queryset:
payment_mode=paymentMode.objects.for_tenant(request.user.tenant).get(name__exact=request.POST.get('payment_mode'))
payment_account=payment_mode.account

However, Django is throwing up error with the second line of queryset. Even if I use filter instead of get, its showing error - Queryset doesn't have filter!!

From what I understand, first django is giving me all the payment modes related to this user, then getting the payment mode from the request.POST.get object and then in the second line it's trying to get the related foreignkey. Can anyone kindly tell where I'm going wrong?

SG2791
  • 35
  • 6

1 Answers1

2

Well, sorry to disturb you all, I just got my answer as there was a typo in Queryset.

And as it should be, once I use "get" the solution is fine. Now, I'm not sure if there's a better way to do it except for caching the sessions data!!

This is an answer I wrote for future reference of others.

SG2791
  • 35
  • 6