2016-04-11 15 views
0

ben böyle bir modeli vardır:Django reversiyon ve 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 ekran değişiklikleri django-reversiyonunu

kullanarak iz kullanıcı değişiklikleri istiyorum

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

dönüş varsayılan örneğini kullanarak

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

ama ben böyle Seçimleri değerleri döndürür istiyorum:

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

cevap

0

i

i seçimler görüntüsünü almak için bu yardımcıyı kullanın Django Atavizm'den böyle şeyler yoktur bulundu

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