【问题标题】:correct usage of limit_choices_to in django models在 django 模型中正确使用 limit_choices_to
【发布时间】:2019-08-17 15:05:54
【问题描述】:

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

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

【问题讨论】:

    标签: python django python-3.x django-models django-2.2


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2015-11-29
      • 2010-11-08
      • 2010-09-14
      • 2016-05-13
      • 1970-01-01
      • 1970-01-01
      • 2013-08-13
      • 2016-04-12
      • 1970-01-01
      相关资源
      最近更新 更多