【问题标题】:Set django model instance field like dictionary设置 django 模型实例字段,如字典
【发布时间】:2019-01-05 03:19:58
【问题描述】:

在 django 中,我们可以像这样更新模型实例字段:

from .models import Credentials
current_cre=Credentials.object.get(user=request.user)

current_cre.fb_name='Name'
current_cre.fb_pass='****'
current_cre.save()

有什么办法可以像字典项一样:

current_cre['fb_name']='Name'
current_cre['fb_pass']='Pass'

所以我可以像这样迭代过程:

for field_name in List_Fields:
    current_cre[field_name]=request.POST[field_name]

提前致谢。

【问题讨论】:

    标签: python django model


    【解决方案1】:

    试试这个

    List_Fields = [(f.verbose_name, f.name) for f in Credentials._meta.get_fields()]
    
    for field_name, value in List_Fields:
        current_cre[field_name]=request.POST[field_name]
    

    【讨论】:

      【解决方案2】:

      您可以为此使用内置的__dict__,因为

      from .models import Credentials
      
      current_cre = Credentials.object.get(user=request.user)
      current_cre.__dict__['fb_name'] = "Name"
      current_cre.__dict__['fb_pass'] = "****"
      current_cre.save()
      


      如果userunique 字段,那么您也可以试试这个,

      from .models import Credentials
      
      my_dict = {"fb_name": "Name", "fb_pass": "****"}
      current_cre = Credentials.object.filtert(user=request.user).update(**my_dict)
      

      【讨论】:

        猜你喜欢
        • 2017-06-15
        • 1970-01-01
        • 2014-10-21
        • 1970-01-01
        • 1970-01-01
        • 2011-02-20
        • 2021-11-16
        • 1970-01-01
        • 2019-04-15
        相关资源
        最近更新 更多