Python Django:将数据从pre_save传递到视图
我有以下问题:我想将数据从模型预保存函数传递到我的views.py 原因是在我的pre_save函数中,生成了一个唯一的order_id。此唯一订单id还必须保存在会话id(request.session['order\u id']=unique\u order\u id)中。模型不接受请求,因此我尝试将其保存在my views.py中,但是如何在那里获取生成的唯一订单id 谢谢你的帮助 views.pyPython Django:将数据从pre_save传递到视图,python,django,Python,Django,我有以下问题:我想将数据从模型预保存函数传递到我的views.py 原因是在我的pre_save函数中,生成了一个唯一的order_id。此唯一订单id还必须保存在会话id(request.session['order\u id']=unique\u order\u id)中。模型不接受请求,因此我尝试将其保存在my views.py中,但是如何在那里获取生成的唯一订单id 谢谢你的帮助 views.py def another_view(request): if request.PO
def another_view(request):
if request.POST:
# Generate unique order_id
x = Order().save()
request.session['order_id'] = x
# This is how I hoped it to solve, but x is not passing any data, even when adding a return variable in pre_save
models.py
# Imports (removed)
# Create your models here.
class Order(models.Model):
order_id = models.CharField(max_length=10, unique=True)
updated = models.DateTimeField(auto_now=True)
timestamp = models.DateTimeField(auto_now_add=True)
def __str__(self):
return str(self.order_id)
def order_pre_save_receiver(sender, instance, *args, **kwargs):
instance.order_id = unique_id_generator(instance)
# Here the unique order id is generated. Additionally I want to save this id as a session.
pre_save.connect(order_pre_save_receiver, sender=Order)
调用
x=Order().save()
时,您正在创建一个Order对象来更新它,而不是保存它
save()
方法不返回任何模型对象,而是更新调用它的对象
所以你要做的是
x = Order()
x.save() # at this point pre_save is called and unique id is updated
x.order_id # will be your updated order id
或者只创建(…),它同时执行
x=Order();x、 只需一次操作即可保存()。