请帮助我根据公司来限制模型团队的选择。现在,我将测试值“ 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()
)
因此,我需要根据所选公司来限制团队价值的变化。请帮助了解如何执行此操作。
答案 0 :(得分:0)
我认为这是您无法在models.py中完成的操作 该表单将在客户端浏览器中呈现,该客户端浏览器在数据输入期间无法访问您的models.py文件,除非您在输入数据时多次单击提交。 最好的方法是,用事件侦听器编写一个小的Java Script函数(类似:teamfield.addEventListener(“ keydown ...,on key code == 113)),该函数监视表单字段并根据选择对象进行更改在所选公司上。