Python 数据库中的数据不是从django插入的

Python 数据库中的数据不是从django插入的,python,django,Python,Django,在django应用程序中,我得到了用户提交的表单数据,该数据试图插入mysql数据库,但即使与数据库列名值匹配的request.keys没有插入数据库 if request: user=User() for k,v in request.POST.items(): if str(k)!="csrfmiddlewaretoken": if(k=='name'): user.name=v #like th

在django应用程序中,我得到了用户提交的表单数据,该数据试图插入mysql数据库,但即使与数据库列名值匹配的request.keys没有插入数据库

if request:
    user=User()
    for k,v in request.POST.items():
        if str(k)!="csrfmiddlewaretoken":
            if(k=='name'):
                user.name=v     #like this data will be saved

             user.save()



if request:
    user=User()
    for k,v in request.POST.items():
        if str(k)!="csrfmiddlewaretoken":
                user.k=v     #like this data will not be saved

             user.save()

实际上我使用了相同的db列名和html表单标记名,所以request.POST.keys与db列名匹配,但是,如果我硬编码列,它正在工作,但是如果我从request.post.keys迭代并保存它不工作,这将不起作用,因为user.k表示您正在尝试将值v分配给用户实例的属性k,而该属性不存在

如果你决心这样做,你可以用它来达到这个目的

for k,v in request.POST.items():
    if str(k)!="csrfmiddlewaretoken":
        setattr(user, k, v)
    user.save()

我认为您根本没有调用用户对象。尝试以下操作:user=user.objects.all而不是user=User@Romans8.38-39 User.objects.all返回用户模型中存储的任何数据/对象。。实际上,我的问题是post.keys与db col名称匹配,但没有保存您的代码是非常不安全的。不要那样做。使用Django forms of modelforms验证用户数据。感谢它的工作,但如果您在Django教程第1部分中看到它们分配了轮询,我仍然没有得到什么区别。id=1与我设置用户属性的方式相同。。。默认情况下,用户对象将具有所有列,因为在您的情况下,k是一个变量,这就是它不起作用的原因。在您的例子中,假设k是一个列模型属性,就像教程示例中的id一样。例如,如果k是first_name,则假定user.k计算为user.first_name,但它不是。如果k='firstname',则不会设置user.k='dar',但会设置user.firstname='dar',因此user.k!=user.firstname,那么user.k到底是什么呢?它将保存在属性k中-进行测试,执行此操作-在user.save之前,只需打印user.k-它将给您一些有效值,但是,当您尝试保存时,它会在models.py的类user中查找k,并查看k是否为列-如果不是,它将丢弃它。谢谢,我得到了它。。。他们是否有其他方法在数据库中存储数据