Django过滤查询

时间:2014-05-20 11:36:19

标签: python django django-models

我的模型中有一列我存储条形码列表。现在我有一个条形码,123456。我想用条形码过滤该行123456

class A(models.Model):
    barcode = models.Charfield(max_length = 255)

我将条形码存储为[u'123456', u'457798799'],即每个条形码行包含Char格式的条形码列表。

现在我想过滤其列表中包含条形码123456的那一行。我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

解决方案是:

A.objects.filter(barcode__contains='123456')

通过它,您将获得条形码包含所需字符串的所有对象的列表。

无论如何,我建议使用ForeignKey关系,因为这是一个合适的语义解决方案: https://docs.djangoproject.com/en/dev/ref/models/fields/#foreignkey

class A(models.Model):
    name = models.Charfield(max_length=50)

class Bcode(models.Model):
    barcode = models.IntegerField()
    a = models.ForeignKey(A)

然后您可以从A - 实例:

获取所有条形码
a_instance.bcode_set.all()

您可以获取条形码的相应A - 实例,例如:

b = Bcode.objects.get(123456)
b.a.name