ORM';比如';django python中的查询
keywords=Donut使用ORM';比如';django python中的查询,python,django,python-3.x,django-models,Python,Django,Python 3.x,Django Models,keywords=Donut使用关键字\uuuu name\uuuu in=Donut 但是我需要得到结果关键字\uuuu name\uuu in=Don 视图.py items=ItemVariation.objects.filter(item__restaurant__id = i['restaurant']['id'],keyword__name__in=keyword,keyword__mood__moods=mood).select_related() # items=ItemVar
关键字\uuuu name\uuuu in=Donut
但是我需要得到结果关键字\uuuu name\uuu in=Don
视图.py
items=ItemVariation.objects.filter(item__restaurant__id = i['restaurant']['id'],keyword__name__in=keyword,keyword__mood__moods=mood).select_related()
# items=ItemVariation.objects.filter(item__restaurant__id = i['restaurant']['id'],keyword__name__contains=keyword,keyword__mood__moods=mood).select_related() # it is returning null
# items=ItemVariation.objects.filter(item__restaurant__id = i['restaurant']['id'],keyword__name__icontains=keyword,keyword__mood__moods=mood).select_related()
class Keyword(models.Model):
name=models.CharField(max_length=500,unique=True)
image = models.ImageField(upload_to='keywords/', blank=True, null=True)
mood=models.ManyToManyField(Mood,blank=True)
def __str__(self):
return str(self.name)
class ItemVariation(models.Model):
restaurant=models.ForeignKey(Restaurant,on_delete=models.CASCADE)
item=models.ForeignKey(Item,on_delete=models.CASCADE)
price=models.IntegerField(blank=True,null=True,default=0)
item_code=models.CharField(max_length=500)
keyword= models.ManyToManyField(Keyword)
image=models.ImageField(upload_to='dishes/', blank=True, null=True)
型号.py
items=ItemVariation.objects.filter(item__restaurant__id = i['restaurant']['id'],keyword__name__in=keyword,keyword__mood__moods=mood).select_related()
# items=ItemVariation.objects.filter(item__restaurant__id = i['restaurant']['id'],keyword__name__contains=keyword,keyword__mood__moods=mood).select_related() # it is returning null
# items=ItemVariation.objects.filter(item__restaurant__id = i['restaurant']['id'],keyword__name__icontains=keyword,keyword__mood__moods=mood).select_related()
class Keyword(models.Model):
name=models.CharField(max_length=500,unique=True)
image = models.ImageField(upload_to='keywords/', blank=True, null=True)
mood=models.ManyToManyField(Mood,blank=True)
def __str__(self):
return str(self.name)
class ItemVariation(models.Model):
restaurant=models.ForeignKey(Restaurant,on_delete=models.CASCADE)
item=models.ForeignKey(Item,on_delete=models.CASCADE)
price=models.IntegerField(blank=True,null=True,default=0)
item_code=models.CharField(max_length=500)
keyword= models.ManyToManyField(Keyword)
image=models.ImageField(upload_to='dishes/', blank=True, null=True)
我有这个查询,我需要在=%keyword%中使用关键字名称
我正在使用PostgreSQL数据库
我为此传递的参数/?关键字=甜甜圈&情绪=约会
在
"items": [
{
"id": 7,
"item": {
"name": "Donut",
"short_description": "Donuts"
},
"price": 0,
"item_code": "test",
"image": "/media/dishes/download_3_kcE78IS.jpeg",
"restaurant": 1,
"keyword": [
3
]
}
],
使用icontains时的结果
“项目”:[],您正在寻找的项目(或icontains
)
请分享(相关)模型。然后是
关键字\uuuu名称\uuuu icontains=keyword
。icontains不起作用,它返回的是空的,将示例数据和关键字值添加到您的问题中。但这里您可以查看项目
是否有一家餐厅的关键字名称
包含文本,并且对于该关键字,它包含一个特定的语气。@M4STER-“不工作”不是一个很好的描述。