api.py 877 B

1234567891011121314151617181920212223242526272829
  1. from django.contrib.auth.decorators import login_required
  2. from django.forms.models import modelform_factory
  3. from django.utils.decorators import method_decorator
  4. from djangular.views.crud import NgCRUDView
  5. from corpus.models import EntityOccurrence, Entity
  6. class LoginNgCrudView(NgCRUDView):
  7. @method_decorator(login_required)
  8. def dispatch(self, *args, **kwargs):
  9. return super().dispatch(*args, **kwargs)
  10. class EOCRUDView(LoginNgCrudView):
  11. serializer_name = 'underscore_resolution'
  12. model = EntityOccurrence
  13. fields = ['offset', 'offset_end', 'entity', 'entity__kind__name']
  14. def get_form_class(self):
  15. """
  16. Build ModelForm from model
  17. """
  18. fields = [x for x in self.fields if not x.count("__")]
  19. return modelform_factory(self.model, fields=fields)
  20. class EntityCRUDView(LoginNgCrudView):
  21. model = Entity