首页 > 解决方案 > 通过字段值检查项目是否存在于数据库中

问题描述

我有一个名为的类Product,我想检查数据库中是否已经存在具有相同标题的产品。

class Product(models.Model):
  title = models.CharField(max_length=255)
  ...


for (something in something):
  check if db contains product with a title of 'Some Product'

标签: djangodjango-modelsdjango-views

解决方案


您可以使用.exists()[Django-doc]

Product.objects.filter(title='Some Product').exists()

unique=True然而,使用[Django-doc]在数据库级别强制执行唯一性可能会更好:

class Product(models.Model):
    title = models.CharField(max_length=255, unique=True)

那么如果数据库强制执行(大多数数据库都执行),则根本不可能Product使用相同的title.

您还可以使用[Django-doc]Product获取 a ,或者如果它不存在则创建它:.get_or_create(…)

my_prod, created = Product.objects.get_or_create(title='Some Product')

推荐阅读