像字典一样设置Django模型实例字段

3
在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]

thanks in advance.

2个回答

2

试试这个

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]

1
你可以使用内置的__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()

如果user是一个unique字段,那么你也可以尝试这个方法,
from .models import Credentials

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接