如何过滤尚未保存在数据库中的 Django 模型?



这是我的模型类和一个函数。我只想在我的列表中添加新的动物。

class Animals(models.Model):
id = models.AutoField(primary_key=True)
name = models.TextField(unique=True)
class Meta:
db_table = 'animals'

animals = []
for name in ['duck', 'cow', 'cat', 'dog']:
if (THIS ALREADY EXISTS) animals.objects.filter(name=name): # This will throw an error, because its a list
continue
else:
animal = Animals(name=name)
animals.append(animal)

请记住,我还不想将这些模型保存到数据库中,但是查询存储在内存中的模型列表会很棒,就好像它们都保存为数据库表一样。

你可以遍历动物列表并用它们做任何事情。

但请注意,所有未保存在数据库中的实例都没有 PK 属性

但不能按模型查询筛选它们

你可以做这样的事情。请使用 .exists((

animals = ['dog', 'cat', 'dragon', 'bear']
new_animals = []
for animal in animals:
if Animals.objects.filter(name=animal).exists():
continue
else:
new_animal = Animal(name=animal)
new_animals.append(new_animal)

或简要说明:

new_animals = [Animals(name=animal) for animal in animals if not Animals.objects.filter(name=animal).exists()]

相关内容

  • 没有找到相关文章

最新更新