次は私のDjangoのプログラムのアプリケーションの一つの簡略化models.pyです:Djangoでフィルタを実行する方法、その後にクエリを取得してフィールド値を取得する方法はありますか?
#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()
今、私は、ユーザーのINOUTに基づいて、次のクエリセットをやっています。しかし、Djangoはエラーを投げています。この事は2日以上私を殺しているので、あなたの親切な助けをリクエストしてください。
#Queryset:
payment_mode=paymentMode.objects.for_tenant(request.user.tenant).get(name__exact=request.POST.get('payment_mode'))
payment_account=payment_mode.account
しかし、Djangoはクエリーセットの2行目でエラーを投げています。 getの代わりにfilterを使用しても、そのエラーを表示します - Querysetにはフィルターがありません!!
最初のdjangoは、このユーザーに関連するすべての支払いモードを提供しています。次に、支払いモードをリクエストから取得します.POST.getオブジェクトを次に2行目に取得しようとしています 関連する外部キー。誰かが私が間違っていると親切に言うことができますか?