0

我正在尝试根据其所有者限制出现在 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=”来完成吗?

谢谢!

4

1 回答 1

1

尝试使用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被设置,所以限制选择会给你空集。

于 2013-11-01T12:02:36.397 回答