我正在尝试获取数据库中名称为LIKE'%something%'的所有对象
在阅读文档并在线搜索后,我发现使用django必须使用__contains查找。
但是,当我尝试这样做时,控制台会向我抛出错误500 'NameError:名称'ingredient_name__contains'未定义'
我的模型如下:
{
path: 'buildings',
component: BuildingsComponent,
},
{
path: 'buildings/:buildingId',
component: BuildingComponent,
},
{
path: 'buildings/:buildingId/floors/:floorId',
component: FloorComponent,
}
过滤方法是:
class Ingredient(models.Model):
article_number = models.AutoField(primary_key=True)
ingredient_name = models.CharField(max_length=100, null=False)
cost_amount = models.FloatField(validators=[MinValueValidator(0.1)])
cost_per_unit = models.FloatField(validators=[MinValueValidator(0)])
unit = models.ForeignKey(MeasurementUnit,on_delete=models.CASCADE)
def __str__(self):
return self.ingredient_name
我不知道我在这方面缺少什么,这让我发疯了。
如果有人能帮助我,我将非常感激!
答案 0 :(得分:1)
在Django中,过滤是通过命名参数完成的,因此您应使用:
def filter(request, filter):
filtered = Ingredient.objects.filter(ingredient_name__contains=filter)
# …