2010-08-23 26 views
0

i。具有問題與此:入門相關

model.py(1)

class Profession(models.Model): 
    user= models.ForeignKey(User,unique=True) 
    principal_area = models.ForeignKey(Area,verbose_name='Area principal',related_name='area_principal') 
    others_areas = models.ManyToManyField(Area) 

model.py(2)

class Area(models.Model): 
    area = models.CharField(max_length=150,unique=True) 
    slug = models.SlugField(max_length=200)  
    activa = models.BooleanField(default=True) 

在模型1中,我有一個字段「principal_area 「和其他」others_areas「。

如何從我的視圖中列出所有「principal_area」或「others_areas」在Area模型中的專業人士?

很抱歉,如果我不是太清楚

回答

2

看看Django的Q objects。下面是你如何去做這件事的一個例子:

area = Area.objects.get(**conditions) 
Profession.objects.filter(
    Q(principal_area = area) | Q(others_areas__in = [area]) 
) 
+0

+1,打我一分鐘。 :) – 2010-08-23 18:41:49

+0

@Lakshman:晚餐後準備了太多的綠茶:P – 2010-08-23 18:47:36

+0

一個很好的答案,但我也建議使用OneToOneField而不是ForeignKey字段的principal_area。 – 2010-08-23 19:10:01