2013-11-01 134 views
0

我試圖根據它的所有者來限制出現在ManyToManyField上的對象。 做什麼是正確的形式?Django模型限制ManyToManyField所有者

from django.db import models 
from django.contrib.auth.models import User 


class AuthorizedIps(models.Model): 
    owner = models.ForeignKey(User) 
    description = models.CharField(max_length=64) 
    ip_address = models.IPAddressField() 
    ... 

class CustomerSettings(models.Model): 
    owner = models.ForeignKey(User) 
    authorized_ips = models.ManyToManyField(AuthorizedIps) 
    ... 

這是用參數「limit_choices_to =」來完成嗎?

謝謝!

回答

0

嘗試這樣做,使用F() objects

喜歡的東西:

from django.db.models import F 
class CustomerSettings(models.Model): 
    owner = models.ForeignKey(User) 
    authorized_ips = models.ManyToManyField(AuthorizedIps, 
        limit_choices_to={'owner': F('customersettings__owner')}) 

但是,你會當你創建一個對象來處理案件。那時沒有owner將被設置,所以限制選擇會給你空集。