我有一个这样的模型:
USER_TYPES=(("pro","Professional"),("beg","Beginner"))
mdl_user(models.Model):
name=models.CharField(max_length=128)
utype=models.CharField(max_length=3,Choices=USER_TYPES)我想使用django-reversion跟踪用户更改
使用默认示例显示更改
from reversion.helpers import generate_patch_html
generate_patch_html(old_version, new_version, "utype", cleanup="semantic")返回
<span>pro<ins>beg</ins></span>但是我想要这样的return Choices值:
<span>Professional<ins>Beginner</ins></span>发布于 2016-04-19 01:46:35
我发现django版本没有这样的东西
我使用这个helper来显示选项。
def replace_choices_value(req_mdl, objs):
listobj = []
fields = req_mdl._meta.get_fields()
if type(objs) != list:
objs = [objs, ]
for obj in objs:
newobj = {}
for field in fields:
display_method = "get_%s_display" % field.name
if hasattr(req_mdl, display_method):
newobj[field.name] = dict(field.flatchoices).get(obj.field_dict[field.name])
else:
newobj[field.name] = obj.field_dict.get(field.name, "")
listobj.append(newobj)
return listobjhttps://stackoverflow.com/questions/36542333
复制相似问题