为引用当前模型的OneToOneField定义limit_choices_to

时间:2018-03-16 19:42:12

标签: python django

我有两个模型CompanyPackage,它们之间有多对一的关系:每个Company可以有多个Package s,但每个Package {1}}只有一个Company

此外,我还想为default_package模型定义一个Company字段,这是一个Package,我想将选项限制为Company是正在考虑的公司的包裹。

class Company(models.Model):
    default_package = models.OneToOneField(
        'dashboard.Package',
        on_delete=models.SET_NULL,
        blank=True,
        null=True,
        related_name='default_for_%(class)s')


class Package(models.Model):
    company = models.ForeignKey(Company, on_delete=models.CASCADE)

但是,我想在default_package字段中添加一个limit_choices_to参数,类似于

default_package = models.OneToOneField(..., limit_choices_to={'company': <this_company>})

其中<this_company>是对当前公司的引用。不过,我的语法不是这样的;谁能提供一些帮助?

1 个答案:

答案 0 :(得分:0)

How to get instance of entity in limit_choices_to (Django)?似乎已回答了这个问题。简而言之,这是不可能的。