当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python Django ForeignKey.limit_choices_to用法及代码示例


本文介绍 django.db.models.ForeignKey.limit_choices_to 的用法。

声明

ForeignKey.limit_choices_to

当使用ModelForm 或管理员(默认情况下,查询集中的所有对象都可以选择)呈现此字段时,设置此字段的可用选项限制。可以使用字典、 Q 对象或返回字典或 Q 对象的可调用对象。

例如:

staff_member = models.ForeignKey(
    User,
    on_delete=models.CASCADE,
    limit_choices_to={'is_staff': True},
)

导致 ModelForm 上的相应字段仅列出具有 is_staff=TrueUsers 。这可能对 Django 管理员有帮助。

例如,当与 Python datetime 模块结合使用以限制日期范围的选择时,可调用表单会很有帮助。例如:

def limit_pub_date_choices():
    return {'pub_date__lte': datetime.date.today()}

limit_choices_to = limit_pub_date_choices

如果 limit_choices_to 是或返回一个 Q object ,这对于复杂的查询很有用,那么当字段未在 ModelAdmin raw_id_fields 中列出时,它只会影响管理员中可用的选择模型。

注意

如果一个 callable 用于 limit_choices_to ,那么每次实例化一个新表单时都会调用它。它也可以在验证模型时调用,例如通过管理命令或管理员。管理员构造查询集以在各种边情况下多次验证其表单输入,因此您的可调用对象可能会被多次调用。

相关用法


注:本文由纯净天空筛选整理自djangoproject.com大神的英文原创作品 django.db.models.ForeignKey.limit_choices_to。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。