2014-01-29 3 views
0

Я определяю некоторые модели для приложения инвентаризации/заказа на работу, которое я разрабатываю, и я столкнулся с небольшим прилипанием.Фильтр внешнего ключа Django

Вот некоторые из моделей, с которыми я сейчас сталкиваюсь.

#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

Используйте параметр limit_choices_to для ForeignKey:

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

Perfect. Спасибо. – scuerda

Смежные вопросы