Guest User

Untitled

a guest
Jan 16th, 2019
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.91 KB | None | 0 0
  1. def get_model_fields(model):
  2. return model._meta.fields
  3.  
  4. fields = model._meta.get_fields()
  5. my_field = model._meta.get_field('my_field')
  6.  
  7. opts = model._meta
  8. for f in sorted(opts.fields + opts.many_to_many):
  9. print '%s: %s' % (f.name, f)
  10.  
  11. >>> from django.contrib.auth.models import User
  12. >>> User._meta.get_fields()
  13.  
  14. def get_model_fields(model):
  15. fields = {}
  16. options = model._meta
  17. for field in sorted(options.concrete_fields + options.many_to_many + options.virtual_fields):
  18. fields[field.name] = field
  19. return fields
  20.  
  21. fields = Model._meta.fields
  22.  
  23. In [11]: from django.contrib.auth.models import User
  24.  
  25. In [12]: User._meta.get_fields()
  26. Out[12]:
  27. (<ManyToOneRel: admin.logentry>,
  28. <django.db.models.fields.AutoField: id>,
  29. <django.db.models.fields.CharField: password>,
  30. <django.db.models.fields.DateTimeField: last_login>,
  31. <django.db.models.fields.BooleanField: is_superuser>,
  32. <django.db.models.fields.CharField: username>,
  33. <django.db.models.fields.CharField: first_name>,
  34. <django.db.models.fields.CharField: last_name>,
  35. <django.db.models.fields.EmailField: email>,
  36. <django.db.models.fields.BooleanField: is_staff>,
  37. <django.db.models.fields.BooleanField: is_active>,
  38. <django.db.models.fields.DateTimeField: date_joined>,
  39. <django.db.models.fields.related.ManyToManyField: groups>,
  40. <django.db.models.fields.related.ManyToManyField: user_permissions>)
  41.  
  42. In [13]: [field.name for field in User._meta.get_fields()]
  43. Out[13]:
  44. ['logentry',
  45. 'id',
  46. 'password',
  47. 'last_login',
  48. 'is_superuser',
  49. 'username',
  50. 'first_name',
  51. 'last_name',
  52. 'email',
  53. 'is_staff',
  54. 'is_active',
  55. 'date_joined',
  56. 'groups',
  57. 'user_permissions']
  58.  
  59. class MyModelAdmin(admin.ModelAdmin):
  60. # extending change_view, just as an example
  61. def change_view(self, request, object_id=None, form_url='', extra_context=None):
  62. # get the model field names
  63. field_names = self.get_fields(request)
  64. # use the field names
  65. ...
Add Comment
Please, Sign In to add comment