簡體   English   中英

在Django模型中正確使用limit_choices_to

[英]correct usage of limit_choices_to in django models

請幫助我根據公司來限制模型團隊的選擇。 現在,我將測試值“ 1”放到正確的位置(函數_limit_function)。 但是如何根據所選公司動態限制它呢?

class CustomCompany(models.Model):

    name = models.CharField(max_length=30,
            default="None",
            unique=True
            )

class CustomTeam(models.Model):

    name = models.CharField(
            max_length=30,
            default="None"
            )

    company = models.ForeignKey(
            CustomCompany,
            on_delete=models.CASCADE,
            )


class CustomUser(AbstractUser):

    def _limit_function():
        return {"company__id":1}


    phone = models.CharField(
            max_length=20,
            blank=True
            )

    company = models.ForeignKey(
            CustomCompany,
            on_delete=models.CASCADE,
            default=1
            )

    team = models.ForeignKey(
            CustomTeam,
            on_delete=models.CASCADE,
            default=1,
            limit_choices_to = _limit_function()
            )

因此,我需要根據所選公司限制團隊價值的變化。 請幫助了解如何執行此操作。

我認為這是您無法在models.py中執行的操作。該表單在客戶端瀏覽器中呈現,該瀏覽器在數據輸入期間無法訪問您的models.py文件,除非您在輸入數據時多次單擊提交。 最好的方法是,用事件偵聽器編寫一個小的Java Script函數(類似:teamfield.addEventListener(“ keydown ...,on key code == 113)),該函數監視表單字段並根據選擇對象進行更改在所選公司上。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM