0

次は私の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行目に取得しようとしています 関連する外部キー。誰かが私が間違っていると親切に言うことができますか?

答えて

1

皆さん、私には迷惑をかけて申し訳ありませんが、私はQuerysetにタイプミスがあったので私の答えを得ました。

そして、私が "get"を使うと解決策が得られるはずです。セッションデータをキャッシュする以外の方法があるかどうかはわかりません。

これは私が他の人の将来の参考に書いた回答です。

関連する問題