我正在尝试根据其所有者限制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 :(得分: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
,所以限制选择会给你空集。