我正在为我的模型编写更新方法:
class Task(models.Model):
@staticmethod
def update_task(task_id: int, calendar_path: str, **kwargs):
cal = get_object_or_404(Calendar, path=calendar_path)
task = get_object_or_404(Task, id=task_id)
if task.calendar != cal:
raise FieldError("Calendar does not contains this task")
for field_name, value in kwargs:
task
我希望重命名kwargs中的所有字段,例如:
update_task(..., name = "New Name", description = "New description")
但如果不使用eval,我不知道如何做,但这不是一个好主意
您可以使用解包
*
来完成此操作 例:与
所以回答
枚举完所有键值对后,您可以使用^{} [python-doc]并保存
Task
对象:A
setattr(x, 'y', value)
相当于x.y = value
。我们还可以通过在过滤器部分添加get_object_or_404(…)
来省略获取日历相关问题 更多 >
编程相关推荐