1

请帮助我根据公司限制模型团队的选择。现在我把测试值“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()
            )

因此,我需要根据所选公司限制团队价值观的变体。请帮助了解如何执行此操作。

4

1 回答 1

0

我认为这是你不能在 models.py 中做的事情,表单在客户端浏览器中呈现,在数据输入过程中无法访问你的 models.py 文件,除非你在输入数据时多次点击提交。最好的方法是编写一个带有事件监听器的小 Java 脚本函数(类似于:teamfield.addEventListener("keydown...,on key code==113)),它监视表单字段并更改基于选择对象在选定的公司。

于 2019-08-17T19:04:43.943 回答