Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 信号Post_Save和Pre_Save错误:已创建并自行保存!如何修复?_Django_Django Models_Django Signals - Fatal编程技术网

Django 信号Post_Save和Pre_Save错误:已创建并自行保存!如何修复?

Django 信号Post_Save和Pre_Save错误:已创建并自行保存!如何修复?,django,django-models,django-signals,Django,Django Models,Django Signals,有必要在添加系列后 如果管理员忘记添加,则会自动添加序列 通过这种方式添加:我们获取最后创建的系列,从那里获取 系列编号,并将系列1的编号添加到此编号,然后添加 为我们的系列节目干杯!但经常会出现以下错误: 1) 缺乏 论点“self”,加上它(尽管它为什么存在,但它不是 已知)但仍然不起作用 这是我的模型和信号 请不要这样排列你的代码;这使它很难阅读 您的问题在这里(删除空格): 这只是使series成为series类的另一个名称。你永远不会实例化它;要做到这一点,你需要实际调用它 serie

有必要在添加系列后 如果管理员忘记添加,则会自动添加序列 通过这种方式添加:我们获取最后创建的系列,从那里获取 系列编号,并将系列1的编号添加到此编号,然后添加 为我们的系列节目干杯!但经常会出现以下错误:

1) 缺乏

论点“self”,加上它(尽管它为什么存在,但它不是 已知)但仍然不起作用

这是我的模型和信号
请不要这样排列你的代码;这使它很难阅读

您的问题在这里(删除空格):

这只是使
series
成为series类的另一个名称。你永远不会实例化它;要做到这一点,你需要实际调用它

series = Series()
。。。假设这就是你想要做的;您的代码不清楚。

确定执行以下操作:

def series_change_number(sender, instance, **kwargs):
    ser = Series.objects.last()
    change = ser.number_of_series
    number = int(change) + 1
    instance.number_of_series = number

pre_save.connect(series_change_number, sender=Series)

假设您希望更新新的模型对象。

删除series\u change\u number函数中的“created”参数。save()缺少1个必需的位置参数:“self”是否要在函数中创建新的series对象或就地更新相同的对象?我需要更新,即更新series number,这样就可以了,我们从先前创建的序列号中获取序列号,并将1添加到我们的模型中,因此,在保存管理员时,将有一个相应的序列号!检查我下面的答案好了,怎么做?你能帮助新来的人吗?我得到了一个新的错误@maximum recursion depth Oversed@,使用这个“series=series()”,正如我所说的,您需要准确地解释您正在尝试做什么。创建新系列时将调用此代码。您是否正在尝试更新导致调用信号的实例的编号?@DanielRoseman我认为他正在寻找的是更新当前保存的数据库模型wrt last saved objects的编号。\u系列。新错误,您的答案为“超过最大递归深度”这一行再次调用pre_save信号,因此最大深度问题你是个天才,非常感谢)这样的另一个问题,如果你允许的话)如何使用最后创建的,也就是最重要的,然后它使用最多的1创建,结果是最后一个,我尝试使用“first()”方法,但不起作用,他总是取1创建并添加到1中,有必要取最后创建的系列,并从中取系列的编号!非常感谢)你的下一个问题有点让人困惑。你能详细说明一下吗?假设在管理面板中有2个条目,这是2个系列,当他添加它时,他会取1个系列,也就是说,最新创建的一个,也就是旧的一个,下一个的数字将不正确,但他必须取最后创建的,不是1个系列,也就是说,1个系列,最后加上
series = Series()
def series_change_number(sender, instance, **kwargs):
    ser = Series.objects.last()
    change = ser.number_of_series
    number = int(change) + 1
    instance.number_of_series = number

pre_save.connect(series_change_number, sender=Series)