Advertisement
Guest User

Untitled

a guest
Feb 13th, 2016
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.47 KB | None | 0 0
  1. class SeriesAdmin(ModelLinkAdminFields, admin.ModelAdmin):
  2. search_fields = ['title_ru', 'token']
  3. list_display = ('title_ru', 'last_episode_time')
  4. modellink = ['video',]
  5.  
  6. class ModelLinkWidget(forms.HiddenInput):
  7.  
  8. def __init__(self, admin_site, original_object):
  9. self.admin_site = admin_site
  10. self.original_object = original_object
  11. super(ModelLinkWidget,self).__init__()
  12.  
  13.  
  14. def render(self, name, value, attrs=None):
  15. if self.original_object is not None:
  16. change_url = urlresolvers.reverse('admin:%s_%s_change' %
  17. (type(self.original_object)._meta.app_label,
  18. type(self.original_object)._meta.object_name.lower()),
  19. args=(self.original_object.id,))
  20. return mark_safe('<a id="%s" name="{name}" href="%s">%s</a>' %
  21. (attrs['id'], change_url , escape(self.original_object)))
  22. else:
  23. return None
  24.  
  25. class ModelLinkAdminFields(object):
  26. def get_form(self, request, obj=None, **kwargs):
  27.  
  28. form = super(ModelLinkAdminFields, self).get_form(request, obj, **kwargs)
  29.  
  30. if hasattr(self, 'modellink'):
  31. for field_name in self.modellink:
  32. if field_name in form.base_fields:
  33. form.base_fields[field_name].widget = ModelLinkWidget(self.admin_site, getattr(obj, field_name, ''))
  34. return form
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement