如何将dict值分配给user_id以创建对象

时间:2015-12-15 10:37:11

标签: python

def insertCompany_type(request):
          if request.method == 'POST':
             try:
                data = json.loads(request.body)
                c_type = data["subject"]
                user = get_user_id(request)
                print user
                c_ty=Company_Type(user_id=user,type=c_type)
                c_ty.save(force_insert=True)
             except:
                     print 'nope'
          return JsonResponse({'status': 'success'})

print user

  

显示[{' user_id':1L}]

..如何在user_id中为Company_Type(user_id=user,type=c_type)分配1来创建对象

2 个答案:

答案 0 :(得分:1)

当你实际创建一个用户(没有发生你的代码片段)时,你可以传递一个constuctor参数设置user_id。 e.g。

myUser = User(name="shalin", user_id=1)
myUser.save()

此外,您只需执行以下操作即可从请求中获取用户对象:

user = request.user

比我想象的要容易一些。

答案 1 :(得分:1)

如果user是包含dict的长度为1的列表,则可以按如下方式提取dict的值:

value = user[0]['user_id']

您可以将代码修改为:

      if request.method == 'POST':
         try:
            data = json.loads(request.body)
            c_type = data["subject"]
            user = get_user_id(request)
            id = user[0]['user_id']
            c_ty=Company_Type(user_id=id,type=c_type)
            c_ty.save(force_insert=True)
         except:
                 print 'nope'
      return JsonResponse({'status': 'success'})

此外,如果您需要确保id是一个整数,请将其转换为正确的数据类型int(id)