2011-05-16 54 views
1

我有2個模型之間的多對多領域獲得價值用戶購買了優惠券?
喜歡的東西mycoupon.boutcoupons.filter(user=userid),然後獲得某種方式的日期..Django的多對多從通過

問題是,該領域屬於用戶...如果我從用戶訪問現場我得到優惠券的列表,無論如何,沒有日期。

我只需要coupon-userID .date值。

回答

5

直接查詢UserCoupons。

UserCoupons.objects.get(user=myuser, coupon=mycoupon) 

或使用優惠券,從相反的關係:

mycoupon.usercoupon_set.get(user=myuser) 

編輯迴應評論有兩個獨立的事情怎麼回事。首先,ManyToMany 確實將作爲一個集合(實際上是一個Manager)添加到另一端 - 使用源模型的名稱加上_set。因此在這種情況下,Coupon將具有userprofile_set屬性。

然而,其次,你會看到這不是我在我的答案中使用的。這是因爲ForeignKeys還將反向關係經理添加到他們的目標模型中。您的模型將ForeignKeys定義爲userProfile和Coupon,因此它們都獲得usercoupons_set屬性。

+0

好的,所以如果我在一個模型中創建一個manytomany字段,它會自動添加到另一個作爲一個集合?但是用什麼名字?字段名稱或「通過」類名稱? – 2011-05-16 15:28:34

+0

請參閱我上面的解釋。 – 2011-05-16 15:37:29