當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。