项目场景:
django创建表外键后, 返回表单不包含外键内容,自行填充外键提示需要传入对象,不能传入值
问题描述
ValueError: Cannot assign "1": "Order.user_id" must be a "UserInfo" instance.
原因分析:
外键id直接通过session里面的id来获取 获取的对象为int值,并非对象
解决方案:
通过session中的id去源表获取对象,直接将对象传入
order.py
def order_add(request):
form = OrderModelForm(data=request.POST)
if form.is_valid():
# 根据时间生成订单号 获取当前登录用户作为用户id
form.instance.oid = datetime.datetime.now().strftime("%Y%m%d%H%M%S") + str(random.randint(1000, 9999))
form.instance.user_id = UserInfo.user_ma.filter(id=request.session['info']['id']).first()
form.save()
data = {"status": True}
return HttpResponse(json.dumps(data))