Django外键过滤器

时间:2014-01-29 23:34:23

标签: django django-models

我正在为我正在开发的库存/工作单应用程序定义一些模型,而且我遇到了一个棘手的问题。

以下是我目前遇到一些困难的一些模型。

#models.py
from django.db import models

class Staff(models.Model):
    ROLE = (
        ('M', 'Mechanic'),
        ('W', 'Warehouse'),
    )
    first_name = models.CharField(max_length=25)
    last_name = models.CharField(max_length=25)
    staff_role = models.CharField(max_length=1, choices=ROLE)

class WorkOrder(models.Model):
    item_number = models.ForeignKey(Item)
    date_started = models.DateField()
    date_ended = models.DateField()
    mechanic = models.ForeignKey(Staff)

我希望工作单仅与角色设置为“机械师”的职员相关联。有没有办法根据我在这里的模型在模型规范中对此进行限制,或者在设置视图和表单时是否应该处理这个下游?

1 个答案:

答案 0 :(得分:1)

limit_choices_to参数用于ForeignKey

mechanic = models.ForeignKey(Staff, limit_choices_to={'staff_role': 'M'})