2009-11-06 2 views
0

У меня есть своеобразная ситуация .... Я хочу заполнить ModelChoiceField на основе нескольких таблиц, потому что я хочу иметь поиск, содержащий только активные записи. Примером одной из моделей выглядит следующим образом:Заполнение ModelChoiceField путем сравнения двух или более таблиц

class ExteriorColour(models.Model): 
    exterior_color = models.CharField(max_length=7, blank=False) 
    def __unicode__(self): 
    return self.exterior_colour 

class Vehicle(models.Model): 
    stock_number = models.CharField(max_length=6, blank=False) 
    exterior_colour = models.ForeignKey(ExteriorColour) 
    def __unicode__(self): 
     return self.stock_number 

Из приведенного выше файла модели, я хотел бы иметь поле формы для внешнего цвета, имеющего только те внешние цвета, которые и в таблице Vehicle и экстерьера Цветной стол. Как мне это указать?

ответ

0
ExteriorColour.objects.filter(vehicle__isnull=False) 

Должен сделать это, я думаю.

+0

Ahhh ... это прекрасно работает .... один быстрый вопрос ... как указать, что записи появляются только один раз? В настоящее время, если Black появится в трех отчетах, я получу три записи. – 2009-11-06 12:54:15

+0

Попробуйте: ExteriorColour.objects.filter (vehicle__isnull = False) .distinct() –

+0

thnx ... он работал как шарм. Был поиск .distinct() – 2009-11-06 13:29:08

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