我有一個模型用Django ORM查詢不同slu two的兩個對象?
class Person(models.Model):
name=models.CharField()
slug=models.SlugField()
現在,如果我想獲得蛞蝓john
和人員thomas
我應該怎麼查詢得到的元組或列表這兩個對象,與slug=thomas
和slug=john
?
我有一個模型用Django ORM查詢不同slu two的兩個對象?
class Person(models.Model):
name=models.CharField()
slug=models.SlugField()
現在,如果我想獲得蛞蝓john
和人員thomas
我應該怎麼查詢得到的元組或列表這兩個對象,與slug=thomas
和slug=john
?
如果我undertsand好你的問題,你必須寫:
Person.objects.filter(slug__icontains="thomas", slug__icontains="john")
此命令將顯示其中slug = '%thomas%' AND slug = '%john%'
您的查詢意味着:'select * from person where(slug like'%thomas%'and slug like'%john%''。不是OP要求的。好吧,他實際上使用了'和'這個詞,但顯然他想要的是'或') –
你說你需要一個人與塞約翰和所有對象slu as爲托馬斯。 但我認爲你的意思和需要是或。 爲此,Django中有Q對象來獲取您所需要的。
from django.db.models import Q
Person.objects.filter(Q(slug__icontains="thomas") | Q(slug__icontains="john"))
對於病例和,這種解決方案是不夠的:
Person.objects.filter(slug__icontains="thomas", slug__icontains="john")
是的,則可以使用(=),因爲這,** Person.objects.filter(Q(鼻涕蟲= 「托馬斯」 )| Q(slug =「john」))** –