这是我的模型类和一个函数。我只想将新动物添加到列表中。
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)
请记住,我还不想将这些模型保存到数据库中,但是最好查询一下存储在内存中的模型列表,就像它们都保存为数据库表一样。
答案 0 :(得分:0)
您可以遍历动物列表并对它们进行任何处理。
但要注意所有未保存在数据库中的实例都没有pk属性
但是您不能通过模型查询过滤它们
答案 1 :(得分:0)
您可以执行以下操作。请使用.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()]