有人可以向我解释如何从多个领域获取数据。 我的模特:
class Subcat(models.Model):
subcat_name = models.CharField(max_length=128,default='Unknown')
active1 = models.BooleanField()
variants = models.ManyToManyField('Variants')
lang = models.ForeignKey('Lang',default=1)
def __unicode__(self):
return self.subcat_name
class Variants(models.Model):
lang = models.ForeignKey('Lang')
name = models.CharField(max_length=256)
descr = models.CharField(max_length=500,default='Unknown')
def __unicode__(self):
return self.name
class Lang(models.Model):
name = models.CharField(max_length=25)
code = models.CharField(max_length=5)
def __unicode__(self):
return self.name
在类Subcat用户定义子类别中,默认使用英语,例如:
subcat_name = "Museums"
active1 = 1
variants = Muzeji,...
lang = en
所以默认语言是英语,当我想要英语subcat时很容易获得
subcategory="Museums"
data= Subcat.objects.get(subcat_name=subcategory)
所以我的问题是:当用户使用其他语言时,例如
subcategory= "Muzeji"
data=?????
如何从那些将返回id的信息中进行查询,其中subcat_name是博物馆......
有人可以详细解释我如何从多个到多个字段中获取数据或指向一些好的教程......
答案 0 :(得分:2)
subcat= Subcat.objects.get(subcat_name=subcategory)
variant=subcat.variants.filter(name="Muzeji")
lang=variant.lang.name
如果你想返回id:
variant=subcat.variants.filter(name="Museums").values('id')