2017-03-03 3 views
1

次のように私はジャンゴでのいくつかのモデル(User(standard)Member(extended user)CalculationsSubscriptionType)を持っているとデータベースフィールドを取得:このように、Djangoは1つのクエリ

  • Calculationsが接続されている

    class Member(models.Model): 
        user = models.ForeignKey(to=User) 
        .......... 
    
    class Calculations(models.Model): 
        user = models.ForeignKey(to=User) 
        ..... 
    
    class Type(models.Model): 
        limit = models.IntegerField() 
        name = models.CharField(max_length=50) 
        default = models.BooleanField() 
    
    
    class Subscription(models.Model): 
        started = models.DateField() 
        type = models.ForeignKey(Type) 
        member = models.OneToOneField(Member) 
    

    UserForeignKey

  • Member
  • SubscriptionsとのはMemberに接続されており、私の見解ではForeignKey

Typeと私は、データベースを照会するために、すべてのこれらのモデルからの情報にアクセスしたいです。

このように、私は現在ログインしているメンバー以外のメンバーをすべて募集しており、計算の数とサブスクリプションのタイプを取得したいと考えています。

私は1つのクエリでそれをしようとしています。

@login_required 
def members(request): 
    // That's how I get all information about user and members, but I also need the calculation and subscription 
    members_list = Member.objects.select_related('user').all().exclude(user=request.user) 
    context = {'members': members_list} 
    return render(request, 'master/members.html', context) 

私はそれを行うことができますどのように何かアドバイス:

は、私のようなものを試してみましたか?

答えて

2

関連するモデルのすべての要素にアクセスします。

qv = Member.objects.exclude(user=request.user).values('user__subscription__started', 'user', 'user__calculations__user') 
+0

「計算のキーワードをフィールドに解決できません。」というエラーが表示されます。選択肢は、アクティブ、住所、市区町村、国名、国ID、言語、言語ID、メインメール、マッチコード、メンバー、モバイル、名前、番号、親、親ID、郵便番号、加入、電話番号、ユーザーID、user_idです。 – Boky

+0

'値( '.....'、 'user__calculations') '? – Boky

+0

はい、あなたはクエリを作成する必要があります。 – marin