2016-04-11 5 views
0

私はこのようなモデルがあります:ジャンゴ復帰とGET_ <field> _Display

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) 

iが表示変更にジャンゴ-復帰

を使用してトラックのユーザーの変更をしたいが

from reversion.helpers import generate_patch_html 
generate_patch_html(old_version, new_version, "utype", cleanup="semantic") 

リターンデフォルトの例を使用して

<span>pro<ins>beg</ins></span> 

しかし、私はこのような選択肢の値を返したい:

<span>Professional<ins>Beginner</ins></span> 

答えて

0

私は選択肢の表示を取得するには、このヘルパーを使用ジャンゴ復帰

には、そのような事はありません見つけ

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 listobj