Added a very simple html version of the json API, to make it easier to explore the api manually.
- Legacy-Id: 9991
This commit is contained in:
parent
6ebe1faf1a
commit
2fe8dcb4c2
|
@ -5,9 +5,11 @@ import datetime
|
|||
from django.conf import settings
|
||||
from django.http import HttpResponse
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.utils.encoding import force_text
|
||||
|
||||
from tastypie.api import Api
|
||||
from tastypie.serializers import Serializer
|
||||
from tastypie.bundle import Bundle
|
||||
from tastypie.serializers import Serializer as BaseSerializer
|
||||
from tastypie.exceptions import BadRequest, ApiFieldError
|
||||
from tastypie.utils.mime import determine_format, build_content_type
|
||||
from tastypie.utils import is_valid_jsonp_callback_value
|
||||
|
@ -17,6 +19,58 @@ import debug # pyflakes:ignore
|
|||
|
||||
_api_list = []
|
||||
|
||||
class Serializer(BaseSerializer):
|
||||
def to_html(self, data, options=None):
|
||||
"""
|
||||
Reserved for future usage.
|
||||
|
||||
The desire is to provide HTML output of a resource, making an API
|
||||
available to a browser. This is on the TODO list but not currently
|
||||
implemented.
|
||||
"""
|
||||
from django.template.loader import render_to_string as render
|
||||
|
||||
options = options or {}
|
||||
|
||||
serialized = self.to_simple_html(data, options)
|
||||
return render("api/base.html", {"data": serialized})
|
||||
|
||||
def to_simple_html(self, data, options):
|
||||
"""
|
||||
"""
|
||||
from django.template.loader import render_to_string as render
|
||||
#
|
||||
if isinstance(data, (list, tuple)):
|
||||
return render("api/listitem.html", {"data": [self.to_simple_html(item, options) for item in data]})
|
||||
if isinstance(data, dict):
|
||||
return render("api/dictitem.html", {"data": dict((key, self.to_simple_html(val, options)) for (key, val) in data.items())})
|
||||
elif isinstance(data, Bundle):
|
||||
return render("api/dictitem.html", {"data":dict((key, self.to_simple_html(val, options)) for (key, val) in data.data.items())})
|
||||
elif hasattr(data, 'dehydrated_type'):
|
||||
debug.show('data')
|
||||
if getattr(data, 'dehydrated_type', None) == 'related' and data.is_m2m == False:
|
||||
return render("api/relitem.html", {"fk": data.fk_resource, "val": self.to_simple_html(data.value, options)})
|
||||
elif getattr(data, 'dehydrated_type', None) == 'related' and data.is_m2m == True:
|
||||
render("api/listitem.html", {"data": [self.to_simple_html(bundle, options) for bundle in data.m2m_bundles]})
|
||||
else:
|
||||
return self.to_simple_html(data.value, options)
|
||||
elif isinstance(data, datetime.datetime):
|
||||
return self.format_datetime(data)
|
||||
elif isinstance(data, datetime.date):
|
||||
return self.format_date(data)
|
||||
elif isinstance(data, datetime.time):
|
||||
return self.format_time(data)
|
||||
elif isinstance(data, bool):
|
||||
return data
|
||||
elif isinstance(data, (six.integer_types, float)):
|
||||
return data
|
||||
elif data is None:
|
||||
return None
|
||||
elif isinstance(data, basestring) and data.startswith("/api/v1/"): # XXX Will not work for Python 3
|
||||
return render("api/relitem.html", {"fk": data, "val": data.split('/')[-2]})
|
||||
else:
|
||||
return force_text(data)
|
||||
|
||||
for _app in settings.INSTALLED_APPS:
|
||||
_module_dict = globals()
|
||||
if '.' in _app:
|
||||
|
|
|
@ -32,6 +32,7 @@ class {{model.name}}Resource(ModelResource):{% if model.foreign_keys %}{% for fk
|
|||
{{fk.name|ljust:"16"}} = ToManyField({{fk.rmodel_name}}, '{{fk.name}}', null=True){% endfor %}{% endif %}
|
||||
class Meta:
|
||||
queryset = {{model.name}}.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = '{{model.resource_name}}'
|
||||
filtering = { {% for name in model.plain_names %}
|
||||
"{{ name }}": ALL,{%endfor%}{% for name in model.fk_names%}
|
||||
|
|
24
ietf/api/templates/api/base.html
Normal file
24
ietf/api/templates/api/base.html
Normal file
|
@ -0,0 +1,24 @@
|
|||
<html>
|
||||
<head>
|
||||
<style type="text/css">
|
||||
p.comment {
|
||||
background-color: #cfc;
|
||||
border: solid black 1px;
|
||||
padding: 0.5em;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="page_wrapper">
|
||||
<p class="comment">
|
||||
This is a very simple html version of the JSON api, to make it easier to manually explore
|
||||
the API.<br/>
|
||||
To see the pure JSON version, add '?format=json' to the browser url, or access
|
||||
the API with the "Accept:" http header set to "Accept: application/json".
|
||||
</p>
|
||||
<section class="content">
|
||||
{% block content %}{{data}}{% endblock %}
|
||||
</section>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
8
ietf/api/templates/api/dictitem.html
Normal file
8
ietf/api/templates/api/dictitem.html
Normal file
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
<!-- dictitem.html -->
|
||||
<div style="margin-left: 1em;">
|
||||
{% for key, value in data.items %}
|
||||
"{{key}}": {{value}}{% if not forloop.last %},{% endif %}<br/>
|
||||
{% endfor %}
|
||||
</div>
|
||||
}
|
8
ietf/api/templates/api/listitem.html
Normal file
8
ietf/api/templates/api/listitem.html
Normal file
|
@ -0,0 +1,8 @@
|
|||
[
|
||||
<!-- listitem.html -->
|
||||
<div style="margin-left: 1em;">
|
||||
{% for item in data %}
|
||||
{{item}}{% if not forloop.last %},{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
]
|
2
ietf/api/templates/api/relitem.html
Normal file
2
ietf/api/templates/api/relitem.html
Normal file
|
@ -0,0 +1,2 @@
|
|||
<!-- relitem.html -->
|
||||
<a href="{{fk}}">{{val}}</a>
|
|
@ -17,6 +17,7 @@ class CommunityListResource(ModelResource):
|
|||
added_ids = ToManyField(DocumentResource, 'added_ids', null=True)
|
||||
class Meta:
|
||||
queryset = CommunityList.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'communitylist'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -34,6 +35,7 @@ class ExpectedChangeResource(ModelResource):
|
|||
document = ToOneField(DocumentResource, 'document')
|
||||
class Meta:
|
||||
queryset = ExpectedChange.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'expectedchange'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -47,6 +49,7 @@ class DisplayConfigurationResource(ModelResource):
|
|||
community_list = ToOneField(CommunityListResource, 'community_list')
|
||||
class Meta:
|
||||
queryset = DisplayConfiguration.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'displayconfiguration'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -61,6 +64,7 @@ class ListNotificationResource(ModelResource):
|
|||
event = ToOneField(DocEventResource, 'event')
|
||||
class Meta:
|
||||
queryset = ListNotification.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'listnotification'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -75,6 +79,7 @@ class RuleResource(ModelResource):
|
|||
cached_ids = ToManyField(DocumentResource, 'cached_ids', null=True)
|
||||
class Meta:
|
||||
queryset = Rule.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'rule'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -90,6 +95,7 @@ class EmailSubscriptionResource(ModelResource):
|
|||
community_list = ToOneField(CommunityListResource, 'community_list')
|
||||
class Meta:
|
||||
queryset = EmailSubscription.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'emailsubscription'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -104,6 +110,7 @@ class DocumentChangeDatesResource(ModelResource):
|
|||
document = ToOneField(DocumentResource, 'document')
|
||||
class Meta:
|
||||
queryset = DocumentChangeDates.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'documentchangedates'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
|
|
@ -15,6 +15,7 @@ class DBTemplateResource(ModelResource):
|
|||
group = ToOneField(GroupResource, 'group', null=True)
|
||||
class Meta:
|
||||
queryset = DBTemplate.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'dbtemplate'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
|
|
@ -14,6 +14,7 @@ class BallotTypeResource(ModelResource):
|
|||
positions = ToManyField(BallotPositionNameResource, 'positions', null=True)
|
||||
class Meta:
|
||||
queryset = BallotType.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'ballottype'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -34,6 +35,7 @@ class DeletedEventResource(ModelResource):
|
|||
by = ToOneField(PersonResource, 'by')
|
||||
class Meta:
|
||||
queryset = DeletedEvent.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'deletedevent'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -47,6 +49,7 @@ api.doc.register(DeletedEventResource())
|
|||
class StateTypeResource(ModelResource):
|
||||
class Meta:
|
||||
queryset = StateType.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'statetype'
|
||||
filtering = {
|
||||
"slug": ALL,
|
||||
|
@ -59,6 +62,7 @@ class StateResource(ModelResource):
|
|||
next_states = ToManyField('ietf.doc.resources.StateResource', 'next_states', null=True)
|
||||
class Meta:
|
||||
queryset = State.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'state'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -89,6 +93,7 @@ class DocumentResource(ModelResource):
|
|||
rfc = CharField(attribute='rfc_number', null=True)
|
||||
class Meta:
|
||||
queryset = Document.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'document'
|
||||
filtering = {
|
||||
"time": ALL,
|
||||
|
@ -122,6 +127,7 @@ class DocumentAuthorResource(ModelResource):
|
|||
author = ToOneField(EmailResource, 'author')
|
||||
class Meta:
|
||||
queryset = DocumentAuthor.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'documentauthor'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -137,6 +143,7 @@ class DocEventResource(ModelResource):
|
|||
doc = ToOneField(DocumentResource, 'doc')
|
||||
class Meta:
|
||||
queryset = DocEvent.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'docevent'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -157,6 +164,7 @@ class StateDocEventResource(ModelResource):
|
|||
state = ToOneField(StateResource, 'state', null=True)
|
||||
class Meta:
|
||||
queryset = StateDocEvent.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'statedocevent'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -178,6 +186,7 @@ class ConsensusDocEventResource(ModelResource):
|
|||
docevent_ptr = ToOneField(DocEventResource, 'docevent_ptr')
|
||||
class Meta:
|
||||
queryset = ConsensusDocEvent.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'consensusdocevent'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -195,6 +204,7 @@ class DocAliasResource(ModelResource):
|
|||
document = ToOneField(DocumentResource, 'document')
|
||||
class Meta:
|
||||
queryset = DocAlias.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'docalias'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -210,6 +220,7 @@ class TelechatDocEventResource(ModelResource):
|
|||
docevent_ptr = ToOneField(DocEventResource, 'docevent_ptr')
|
||||
class Meta:
|
||||
queryset = TelechatDocEvent.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'telechatdocevent'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -230,6 +241,7 @@ class DocReminderResource(ModelResource):
|
|||
type = ToOneField(DocReminderTypeNameResource, 'type')
|
||||
class Meta:
|
||||
queryset = DocReminder.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'docreminder'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -247,6 +259,7 @@ class LastCallDocEventResource(ModelResource):
|
|||
docevent_ptr = ToOneField(DocEventResource, 'docevent_ptr')
|
||||
class Meta:
|
||||
queryset = LastCallDocEvent.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'lastcalldocevent'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -267,6 +280,7 @@ class NewRevisionDocEventResource(ModelResource):
|
|||
docevent_ptr = ToOneField(DocEventResource, 'docevent_ptr')
|
||||
class Meta:
|
||||
queryset = NewRevisionDocEvent.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'newrevisiondocevent'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -287,6 +301,7 @@ class WriteupDocEventResource(ModelResource):
|
|||
docevent_ptr = ToOneField(DocEventResource, 'docevent_ptr')
|
||||
class Meta:
|
||||
queryset = WriteupDocEvent.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'writeupdocevent'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -307,6 +322,7 @@ class InitialReviewDocEventResource(ModelResource):
|
|||
docevent_ptr = ToOneField(DocEventResource, 'docevent_ptr')
|
||||
class Meta:
|
||||
queryset = InitialReviewDocEvent.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'initialreviewdocevent'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -328,6 +344,7 @@ class BallotDocEventResource(ModelResource):
|
|||
ballot_type = ToOneField(BallotTypeResource, 'ballot_type')
|
||||
class Meta:
|
||||
queryset = BallotDocEvent.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'ballotdocevent'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -348,6 +365,7 @@ class RelatedDocumentResource(ModelResource):
|
|||
relationship = ToOneField(DocRelationshipNameResource, 'relationship')
|
||||
class Meta:
|
||||
queryset = RelatedDocument.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'relateddocument'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -375,6 +393,7 @@ class DocHistoryResource(ModelResource):
|
|||
authors = ToManyField(EmailResource, 'authors', null=True)
|
||||
class Meta:
|
||||
queryset = DocHistory.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'dochistory'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -416,6 +435,7 @@ class BallotPositionDocEventResource(ModelResource):
|
|||
pos = ToOneField(BallotPositionNameResource, 'pos')
|
||||
class Meta:
|
||||
queryset = BallotPositionDocEvent.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'ballotpositiondocevent'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -441,6 +461,7 @@ class DocHistoryAuthorResource(ModelResource):
|
|||
author = ToOneField(EmailResource, 'author')
|
||||
class Meta:
|
||||
queryset = DocHistoryAuthor.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'dochistoryauthor'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -457,6 +478,7 @@ class RelatedDocHistoryResource(ModelResource):
|
|||
relationship = ToOneField(DocRelationshipNameResource, 'relationship')
|
||||
class Meta:
|
||||
queryset = RelatedDocHistory.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'relateddochistory'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
|
|
@ -20,6 +20,7 @@ class GroupResource(ModelResource):
|
|||
unused_tags = ToManyField(DocTagNameResource, 'unused_tags', null=True)
|
||||
class Meta:
|
||||
queryset = Group.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'group'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -47,6 +48,7 @@ class GroupStateTransitionsResource(ModelResource):
|
|||
next_states = ToManyField('ietf.doc.resources.StateResource', 'next_states', null=True)
|
||||
class Meta:
|
||||
queryset = GroupStateTransitions.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'groupstatetransitions'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -63,6 +65,7 @@ class GroupMilestoneResource(ModelResource):
|
|||
docs = ToManyField('ietf.doc.resources.DocumentResource', 'docs', null=True)
|
||||
class Meta:
|
||||
queryset = GroupMilestone.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'groupmilestone'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -88,6 +91,7 @@ class GroupHistoryResource(ModelResource):
|
|||
unused_tags = ToManyField(DocTagNameResource, 'unused_tags', null=True)
|
||||
class Meta:
|
||||
queryset = GroupHistory.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'grouphistory'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -113,6 +117,7 @@ class GroupURLResource(ModelResource):
|
|||
group = ToOneField(GroupResource, 'group')
|
||||
class Meta:
|
||||
queryset = GroupURL.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'groupurl'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -131,6 +136,7 @@ class RoleResource(ModelResource):
|
|||
email = ToOneField(EmailResource, 'email')
|
||||
class Meta:
|
||||
queryset = Role.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'role'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -147,6 +153,7 @@ class GroupEventResource(ModelResource):
|
|||
by = ToOneField(PersonResource, 'by')
|
||||
class Meta:
|
||||
queryset = GroupEvent.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'groupevent'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -167,6 +174,7 @@ class RoleHistoryResource(ModelResource):
|
|||
email = ToOneField(EmailResource, 'email')
|
||||
class Meta:
|
||||
queryset = RoleHistory.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'rolehistory'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -185,6 +193,7 @@ class GroupMilestoneHistoryResource(ModelResource):
|
|||
docs = ToManyField('ietf.doc.resources.DocumentResource', 'docs', null=True)
|
||||
class Meta:
|
||||
queryset = GroupMilestoneHistory.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'groupmilestonehistory'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -207,6 +216,7 @@ class MilestoneGroupEventResource(ModelResource):
|
|||
milestone = ToOneField(GroupMilestoneResource, 'milestone')
|
||||
class Meta:
|
||||
queryset = MilestoneGroupEvent.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'milestonegroupevent'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -229,6 +239,7 @@ class ChangeStateGroupEventResource(ModelResource):
|
|||
state = ToOneField(GroupStateNameResource, 'state')
|
||||
class Meta:
|
||||
queryset = ChangeStateGroupEvent.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'changestategroupevent'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
|
|
@ -10,6 +10,7 @@ from ietf.iesg.models import * # pyflakes:ignore
|
|||
class TelechatDateResource(ModelResource):
|
||||
class Meta:
|
||||
queryset = TelechatDate.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'telechatdate'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -20,6 +21,7 @@ api.iesg.register(TelechatDateResource())
|
|||
class TelechatResource(ModelResource):
|
||||
class Meta:
|
||||
queryset = Telechat.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'telechat'
|
||||
filtering = {
|
||||
"telechat_id": ALL,
|
||||
|
@ -36,6 +38,7 @@ api.iesg.register(TelechatResource())
|
|||
class TelechatAgendaItemResource(ModelResource):
|
||||
class Meta:
|
||||
queryset = TelechatAgendaItem.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'telechatagendaitem'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
|
|
@ -18,6 +18,7 @@ class IprDisclosureBaseResource(ModelResource):
|
|||
rel = ToManyField('ietf.ipr.resources.IprDisclosureBaseResource', 'rel', null=True)
|
||||
class Meta:
|
||||
queryset = IprDisclosureBase.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'iprdisclosurebase'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -42,6 +43,7 @@ class IprDocRelResource(ModelResource):
|
|||
document = ToOneField(DocAliasResource, 'document')
|
||||
class Meta:
|
||||
queryset = IprDocRel.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'iprdocrel'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -64,6 +66,7 @@ class HolderIprDisclosureResource(ModelResource):
|
|||
rel = ToManyField(IprDisclosureBaseResource, 'rel', null=True)
|
||||
class Meta:
|
||||
queryset = HolderIprDisclosure.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'holderiprdisclosure'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -105,6 +108,7 @@ class ThirdPartyIprDisclosureResource(ModelResource):
|
|||
rel = ToManyField(IprDisclosureBaseResource, 'rel', null=True)
|
||||
class Meta:
|
||||
queryset = ThirdPartyIprDisclosure.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'thirdpartyiprdisclosure'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -136,6 +140,7 @@ class RelatedIprResource(ModelResource):
|
|||
relationship = ToOneField(DocRelationshipNameResource, 'relationship')
|
||||
class Meta:
|
||||
queryset = RelatedIpr.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'relatedipr'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -156,6 +161,7 @@ class NonDocSpecificIprDisclosureResource(ModelResource):
|
|||
rel = ToManyField(IprDisclosureBaseResource, 'rel', null=True)
|
||||
class Meta:
|
||||
queryset = NonDocSpecificIprDisclosure.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'nondocspecificiprdisclosure'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -192,6 +198,7 @@ class GenericIprDisclosureResource(ModelResource):
|
|||
rel = ToManyField(IprDisclosureBaseResource, 'rel', null=True)
|
||||
class Meta:
|
||||
queryset = GenericIprDisclosure.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'genericiprdisclosure'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -226,6 +233,7 @@ class IprEventResource(ModelResource):
|
|||
in_reply_to = ToOneField(MessageResource, 'in_reply_to', null=True)
|
||||
class Meta:
|
||||
queryset = IprEvent.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'iprevent'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -252,6 +260,7 @@ class LegacyMigrationIprEventResource(ModelResource):
|
|||
iprevent_ptr = ToOneField(IprEventResource, 'iprevent_ptr')
|
||||
class Meta:
|
||||
queryset = LegacyMigrationIprEvent.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'legacymigrationiprevent'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
|
|
@ -21,6 +21,7 @@ class LiaisonStatementResource(ModelResource):
|
|||
attachments = ToManyField(DocumentResource, 'attachments', null=True)
|
||||
class Meta:
|
||||
queryset = LiaisonStatement.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'liaisonstatement'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
|
|
@ -14,6 +14,7 @@ class MeetingResource(ModelResource):
|
|||
agenda = ToOneField('ietf.meeting.resources.ScheduleResource', 'agenda', null=True)
|
||||
class Meta:
|
||||
queryset = Meeting.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'meeting'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -42,6 +43,7 @@ class ResourceAssociationResource(ModelResource):
|
|||
name = ToOneField(RoomResourceNameResource, 'name')
|
||||
class Meta:
|
||||
queryset = ResourceAssociation.objects.all()
|
||||
serializer = api.Serializer()
|
||||
resource_name = 'resourceassociation'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -62,6 +64,7 @@ class ConstraintResource(ModelResource):
|
|||
name = ToOneField(ConstraintNameResource, 'name')
|
||||
class Meta:
|
||||
queryset = Constraint.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'constraint'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -81,6 +84,7 @@ class RoomResource(ModelResource):
|
|||
session_types = ToManyField(TimeSlotTypeNameResource, 'session_types', null=True)
|
||||
class Meta:
|
||||
queryset = Room.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'room'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -99,6 +103,7 @@ class ScheduleResource(ModelResource):
|
|||
owner = ToOneField(PersonResource, 'owner')
|
||||
class Meta:
|
||||
queryset = Schedule.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'schedule'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -126,6 +131,7 @@ class SessionResource(ModelResource):
|
|||
requested_duration = api.TimedeltaField()
|
||||
class Meta:
|
||||
queryset = Session.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'session'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -157,6 +163,7 @@ class TimeSlotResource(ModelResource):
|
|||
duration = api.TimedeltaField()
|
||||
class Meta:
|
||||
queryset = TimeSlot.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'timeslot'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -179,6 +186,7 @@ class ScheduledSessionResource(ModelResource):
|
|||
extendedfrom = ToOneField('ietf.meeting.resources.ScheduledSessionResource', 'extendedfrom', null=True)
|
||||
class Meta:
|
||||
queryset = ScheduledSession.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'scheduledsession'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -201,6 +209,7 @@ class SessionPresentationResource(ModelResource):
|
|||
document = ToOneField(DocumentResource, 'document')
|
||||
class Meta:
|
||||
queryset = SessionPresentation.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'sessionpresentation'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
|
|
@ -17,6 +17,7 @@ class MessageResource(ModelResource):
|
|||
related_docs = ToManyField(DocumentResource, 'related_docs', null=True)
|
||||
class Meta:
|
||||
queryset = Message.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'message'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -41,6 +42,7 @@ class SendQueueResource(ModelResource):
|
|||
message = ToOneField(MessageResource, 'message')
|
||||
class Meta:
|
||||
queryset = SendQueue.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'sendqueue'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
|
|
@ -11,6 +11,7 @@ from ietf.name.models import * # pyflakes:ignore
|
|||
class TimeSlotTypeNameResource(ModelResource):
|
||||
class Meta:
|
||||
queryset = TimeSlotTypeName.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'timeslottypename'
|
||||
filtering = {
|
||||
"slug": ALL,
|
||||
|
@ -24,6 +25,7 @@ api.name.register(TimeSlotTypeNameResource())
|
|||
class GroupStateNameResource(ModelResource):
|
||||
class Meta:
|
||||
queryset = GroupStateName.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'groupstatename'
|
||||
filtering = {
|
||||
"slug": ALL,
|
||||
|
@ -37,6 +39,7 @@ api.name.register(GroupStateNameResource())
|
|||
class DocTagNameResource(ModelResource):
|
||||
class Meta:
|
||||
queryset = DocTagName.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'doctagname'
|
||||
filtering = {
|
||||
"slug": ALL,
|
||||
|
@ -50,6 +53,7 @@ api.name.register(DocTagNameResource())
|
|||
class IntendedStdLevelNameResource(ModelResource):
|
||||
class Meta:
|
||||
queryset = IntendedStdLevelName.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'intendedstdlevelname'
|
||||
filtering = {
|
||||
"slug": ALL,
|
||||
|
@ -63,6 +67,7 @@ api.name.register(IntendedStdLevelNameResource())
|
|||
class LiaisonStatementPurposeNameResource(ModelResource):
|
||||
class Meta:
|
||||
queryset = LiaisonStatementPurposeName.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'liaisonstatementpurposename'
|
||||
filtering = {
|
||||
"slug": ALL,
|
||||
|
@ -77,6 +82,7 @@ class DraftSubmissionStateNameResource(ModelResource):
|
|||
next_states = ToManyField('ietf.name.resources.DraftSubmissionStateNameResource', 'next_states', null=True)
|
||||
class Meta:
|
||||
queryset = DraftSubmissionStateName.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'draftsubmissionstatename'
|
||||
filtering = {
|
||||
"slug": ALL,
|
||||
|
@ -91,6 +97,7 @@ api.name.register(DraftSubmissionStateNameResource())
|
|||
class DocTypeNameResource(ModelResource):
|
||||
class Meta:
|
||||
queryset = DocTypeName.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'doctypename'
|
||||
filtering = {
|
||||
"slug": ALL,
|
||||
|
@ -104,6 +111,7 @@ api.name.register(DocTypeNameResource())
|
|||
class RoleNameResource(ModelResource):
|
||||
class Meta:
|
||||
queryset = RoleName.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'rolename'
|
||||
filtering = {
|
||||
"slug": ALL,
|
||||
|
@ -117,6 +125,7 @@ api.name.register(RoleNameResource())
|
|||
class StdLevelNameResource(ModelResource):
|
||||
class Meta:
|
||||
queryset = StdLevelName.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'stdlevelname'
|
||||
filtering = {
|
||||
"slug": ALL,
|
||||
|
@ -130,6 +139,7 @@ api.name.register(StdLevelNameResource())
|
|||
class GroupTypeNameResource(ModelResource):
|
||||
class Meta:
|
||||
queryset = GroupTypeName.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'grouptypename'
|
||||
filtering = {
|
||||
"slug": ALL,
|
||||
|
@ -143,6 +153,7 @@ api.name.register(GroupTypeNameResource())
|
|||
class GroupMilestoneStateNameResource(ModelResource):
|
||||
class Meta:
|
||||
queryset = GroupMilestoneStateName.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'groupmilestonestatename'
|
||||
filtering = {
|
||||
"slug": ALL,
|
||||
|
@ -156,6 +167,7 @@ api.name.register(GroupMilestoneStateNameResource())
|
|||
class SessionStatusNameResource(ModelResource):
|
||||
class Meta:
|
||||
queryset = SessionStatusName.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'sessionstatusname'
|
||||
filtering = {
|
||||
"slug": ALL,
|
||||
|
@ -169,6 +181,7 @@ api.name.register(SessionStatusNameResource())
|
|||
class DocReminderTypeNameResource(ModelResource):
|
||||
class Meta:
|
||||
queryset = DocReminderTypeName.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'docremindertypename'
|
||||
filtering = {
|
||||
"slug": ALL,
|
||||
|
@ -182,6 +195,7 @@ api.name.register(DocReminderTypeNameResource())
|
|||
class ConstraintNameResource(ModelResource):
|
||||
class Meta:
|
||||
queryset = ConstraintName.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'constraintname'
|
||||
filtering = {
|
||||
"slug": ALL,
|
||||
|
@ -196,6 +210,7 @@ api.name.register(ConstraintNameResource())
|
|||
class MeetingTypeNameResource(ModelResource):
|
||||
class Meta:
|
||||
queryset = MeetingTypeName.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'meetingtypename'
|
||||
filtering = {
|
||||
"slug": ALL,
|
||||
|
@ -209,6 +224,7 @@ api.name.register(MeetingTypeNameResource())
|
|||
class DocRelationshipNameResource(ModelResource):
|
||||
class Meta:
|
||||
queryset = DocRelationshipName.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'docrelationshipname'
|
||||
filtering = {
|
||||
"slug": ALL,
|
||||
|
@ -223,6 +239,7 @@ api.name.register(DocRelationshipNameResource())
|
|||
class RoomResourceNameResource(ModelResource):
|
||||
class Meta:
|
||||
queryset = RoomResourceName.objects.all()
|
||||
serializer = api.Serializer()
|
||||
resource_name = 'roomresourcename' # Needed because tastypie otherwise removes 'resource' from the name
|
||||
filtering = {
|
||||
"slug": ALL,
|
||||
|
@ -236,6 +253,7 @@ api.name.register(RoomResourceNameResource())
|
|||
class FeedbackTypeNameResource(ModelResource):
|
||||
class Meta:
|
||||
queryset = FeedbackTypeName.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'feedbacktypename'
|
||||
filtering = {
|
||||
"slug": ALL,
|
||||
|
@ -249,6 +267,7 @@ api.name.register(FeedbackTypeNameResource())
|
|||
class StreamNameResource(ModelResource):
|
||||
class Meta:
|
||||
queryset = StreamName.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'streamname'
|
||||
filtering = {
|
||||
"slug": ALL,
|
||||
|
@ -262,6 +281,7 @@ api.name.register(StreamNameResource())
|
|||
class BallotPositionNameResource(ModelResource):
|
||||
class Meta:
|
||||
queryset = BallotPositionName.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'ballotpositionname'
|
||||
filtering = {
|
||||
"slug": ALL,
|
||||
|
@ -276,6 +296,7 @@ api.name.register(BallotPositionNameResource())
|
|||
class DBTemplateTypeNameResource(ModelResource):
|
||||
class Meta:
|
||||
queryset = DBTemplateTypeName.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'dbtemplatetypename'
|
||||
filtering = {
|
||||
"slug": ALL,
|
||||
|
@ -289,6 +310,7 @@ api.name.register(DBTemplateTypeNameResource())
|
|||
class NomineePositionStateNameResource(ModelResource):
|
||||
class Meta:
|
||||
queryset = NomineePositionStateName.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'nomineepositionstatename'
|
||||
filtering = {
|
||||
"slug": ALL,
|
||||
|
@ -304,6 +326,7 @@ api.name.register(NomineePositionStateNameResource())
|
|||
class IprDisclosureStateNameResource(ModelResource):
|
||||
class Meta:
|
||||
queryset = IprDisclosureStateName.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'iprdisclosurestatename'
|
||||
filtering = {
|
||||
"slug": ALL,
|
||||
|
@ -317,6 +340,7 @@ api.name.register(IprDisclosureStateNameResource())
|
|||
class IprEventTypeNameResource(ModelResource):
|
||||
class Meta:
|
||||
queryset = IprEventTypeName.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'ipreventtypename'
|
||||
filtering = {
|
||||
"slug": ALL,
|
||||
|
@ -330,6 +354,7 @@ api.name.register(IprEventTypeNameResource())
|
|||
class IprLicenseTypeNameResource(ModelResource):
|
||||
class Meta:
|
||||
queryset = IprLicenseTypeName.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'iprlicensetypename'
|
||||
filtering = {
|
||||
"slug": ALL,
|
||||
|
|
|
@ -13,6 +13,7 @@ class NomComResource(ModelResource):
|
|||
group = ToOneField(GroupResource, 'group')
|
||||
class Meta:
|
||||
queryset = NomCom.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'nomcom'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -33,6 +34,7 @@ class PositionResource(ModelResource):
|
|||
incumbent = ToOneField(EmailResource, 'incumbent', null=True)
|
||||
class Meta:
|
||||
queryset = Position.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'position'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -54,6 +56,7 @@ class NomineeResource(ModelResource):
|
|||
nominee_position = ToManyField(PositionResource, 'nominee_position', null=True)
|
||||
class Meta:
|
||||
queryset = Nominee.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'nominee'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -68,6 +71,7 @@ class ReminderDatesResource(ModelResource):
|
|||
nomcom = ToOneField(NomComResource, 'nomcom')
|
||||
class Meta:
|
||||
queryset = ReminderDates.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'reminderdates'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -83,6 +87,7 @@ class NomineePositionResource(ModelResource):
|
|||
state = ToOneField(NomineePositionStateNameResource, 'state')
|
||||
class Meta:
|
||||
queryset = NomineePosition.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'nomineeposition'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -103,6 +108,7 @@ class FeedbackResource(ModelResource):
|
|||
nominees = ToManyField(NomineeResource, 'nominees', null=True)
|
||||
class Meta:
|
||||
queryset = Feedback.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'feedback'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -126,6 +132,7 @@ class NominationResource(ModelResource):
|
|||
user = ToOneField(UserResource, 'user')
|
||||
class Meta:
|
||||
queryset = Nomination.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'nomination'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
|
|
@ -13,6 +13,7 @@ class PersonResource(ModelResource):
|
|||
user = ToOneField(UserResource, 'user', null=True)
|
||||
class Meta:
|
||||
queryset = Person.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'person'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -30,6 +31,7 @@ class EmailResource(ModelResource):
|
|||
person = ToOneField(PersonResource, 'person', null=True)
|
||||
class Meta:
|
||||
queryset = Email.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'email'
|
||||
filtering = {
|
||||
"address": ALL,
|
||||
|
@ -43,6 +45,7 @@ class AliasResource(ModelResource):
|
|||
person = ToOneField(PersonResource, 'person')
|
||||
class Meta:
|
||||
queryset = Alias.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'alias'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -57,6 +60,7 @@ class PersonHistoryResource(ModelResource):
|
|||
user = ToOneField(UserResource, 'user', null=True)
|
||||
class Meta:
|
||||
queryset = PersonHistory.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'personhistory'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
|
|
@ -11,6 +11,7 @@ from ietf.redirects.models import * # pyflakes:ignore
|
|||
class RedirectResource(ModelResource):
|
||||
class Meta:
|
||||
queryset = Redirect.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'redirect'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -24,6 +25,7 @@ api.redirects.register(RedirectResource())
|
|||
class SuffixResource(ModelResource):
|
||||
class Meta:
|
||||
queryset = Suffix.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'suffix'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -37,6 +39,7 @@ class CommandResource(ModelResource):
|
|||
suffix = ToOneField(SuffixResource, 'suffix', null=True)
|
||||
class Meta:
|
||||
queryset = Command.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'command'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
|
|
@ -13,6 +13,7 @@ class PreapprovalResource(ModelResource):
|
|||
by = ToOneField(PersonResource, 'by')
|
||||
class Meta:
|
||||
queryset = Preapproval.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'preapproval'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -29,6 +30,7 @@ class SubmissionResource(ModelResource):
|
|||
group = ToOneField(GroupResource, 'group', null=True)
|
||||
class Meta:
|
||||
queryset = Submission.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'submission'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
@ -61,6 +63,7 @@ class SubmissionEventResource(ModelResource):
|
|||
by = ToOneField(PersonResource, 'by', null=True)
|
||||
class Meta:
|
||||
queryset = SubmissionEvent.objects.all()
|
||||
serializer = api.Serializer()
|
||||
#resource_name = 'submissionevent'
|
||||
filtering = {
|
||||
"id": ALL,
|
||||
|
|
|
@ -5,14 +5,18 @@ from tastypie.fields import CharField
|
|||
from django.contrib.auth.models import User
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
|
||||
from ietf import api
|
||||
|
||||
class UserResource(ModelResource):
|
||||
username = CharField()
|
||||
class Meta:
|
||||
queryset = User.objects.all()
|
||||
serializer = api.Serializer()
|
||||
|
||||
class ContentTypeResource(ModelResource):
|
||||
username = CharField()
|
||||
class Meta:
|
||||
queryset = ContentType.objects.all()
|
||||
serializer = api.Serializer()
|
||||
|
||||
|
Loading…
Reference in a new issue