我有一个模型Task
,我想用一个for循环来填充它。在一个列表中,我有应该传递到模型中的任务。
我的模型实际上有三个以上的任务(下面我只显示了三个)。列表也将有不同数量的条目。列表也可以只有一个任务。
tasks = ['first task', 'second task', 'third task']
class Task(models.Model):
ad = models.OneToOneField(Ad, on_delete=models.CASCADE, primary_key=True, blank=True, null=False)
task1 = models.CharField(max_length=256, blank=True, null=True)
task2 = models.CharField(max_length=256, blank=True, null=True)
task3 = models.CharField(max_length=256, blank=True, null=True)
def __str__(self):
return f'Tasks for {self.ad}'
我的方法看起来像这样:
task_obj = Task.objects.create(
ad = ad
)
for idx, t in enumerate(tasks):
task_obj.f'task{idx+1}' = t
基本上这部分f'task{idx+1}'
不应该是字符串,而是模型的实际变量。
这甚至是可能的吗?或者有其他我不知道的方式存在吗?
1条答案
按热度按时间vvppvyoh1#
您可以使用
setattr
内置函数设置动态属性: