我需要将MySQL表上的触发器转换为Python/Django。你知道吗
触发器将select加载到游标中,循环遍历并创建子记录。在这里:
DECLARE cur CURSOR FOR select id from eval_category;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
OPEN cur;
det_loop: LOOP
FETCH cur INTO ids;
IF done THEN
LEAVE det_loop;
END IF;
INSERT INTO eval_evaluationdetail
(evaluation_id, category_id) VALUES (NEW.id,ids);
END LOOP;
CLOSE cur;
为了将其转换为Python,我修改了型号.py具体如下:
def save(self):
super(Evaluation, self).save()
for cat in Category.objects.all():
self.EvaluationDetail.evaluation=self
self.EvaluationDetail.category=cat
self.EvaluationDetail.save()
这是最新的迭代,但仍然不起作用:(任何帮助将不胜感激。你知道吗
首先,
save_model
代表ModelAdmin
,而不是Model
。它不会有什么特别的作用。你知道吗您有两个选项:您可以覆盖模型上的
save
,或者使用post_save
信号。以下是两种方法的其他答案的链接:This answer有一个使用信号的好例子
This question有一个覆盖
save
的好例子,包括讨论如何在这两个选项之间进行选择。你知道吗相关问题 更多 >
编程相关推荐