这是我的模型类和一个函数。我只想在我的列表中添加新的动物。
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()]