如何过滤 Django Admin 中的外键选择?
How to filter foreingkey choices in Django Admin?
我有 3 个简单模型:
class Department(models.Model):
name = models.CharField(
max_length=30
)
class Company(models.Model):
name = models.CharField(
max_length=30
)
department = models.ManyToManyField(Department)
class Employee(models.Model):
name = models.CharField(
max_length=30
)
company = models.ForeignKey(Company,
on_delete=SET_NULL,
null=True,
blank=True,
)
department = models.ForeignKey(to=Department,
on_delete=DO_NOTHING)
我想将 Django 管理面板中的部门选项限制为与员工公司相关的选项。例如:
部门:
HR、DevOpps、WebApps、TVApps
公司:
Company_1 与部门 - 人力资源、DevOpps、WebApp
Company_2 与部门 - 人力资源、DevOpps、TVApps
添加员工:
如果选择 Company_1,部门的选项为:HR、DevOpps、WebApp
如果选择 Company_2,部门的选项为:HR、DevOpps、TVApps
听起来您想要在表单中实现依赖下拉菜单?
Here 是我过去关注的一篇很棒的文章,您可以通过使用 ajax.
过滤选项来解决这个问题
我还看到 htmx 很好地解决了这个问题,如果您想尝试一下的话。他们的示例页面显示了正在实施的 value-select。
我有 3 个简单模型:
class Department(models.Model):
name = models.CharField(
max_length=30
)
class Company(models.Model):
name = models.CharField(
max_length=30
)
department = models.ManyToManyField(Department)
class Employee(models.Model):
name = models.CharField(
max_length=30
)
company = models.ForeignKey(Company,
on_delete=SET_NULL,
null=True,
blank=True,
)
department = models.ForeignKey(to=Department,
on_delete=DO_NOTHING)
我想将 Django 管理面板中的部门选项限制为与员工公司相关的选项。例如:
部门:
HR、DevOpps、WebApps、TVApps
公司:
Company_1 与部门 - 人力资源、DevOpps、WebApp
Company_2 与部门 - 人力资源、DevOpps、TVApps
添加员工:
如果选择 Company_1,部门的选项为:HR、DevOpps、WebApp
如果选择 Company_2,部门的选项为:HR、DevOpps、TVApps
听起来您想要在表单中实现依赖下拉菜单?
Here 是我过去关注的一篇很棒的文章,您可以通过使用 ajax.
过滤选项来解决这个问题我还看到 htmx 很好地解决了这个问题,如果您想尝试一下的话。他们的示例页面显示了正在实施的 value-select。