Hick
Hick

Reputation: 36404

Using tastypie to write APIS. Got error in the urls.py

name 'entry_resource' is not defined

This is my models.py

from tastypie.utils.timezone import now
from django.contrib.auth.models import User
from django.db import models
from django.template.defaultfilters import slugify


class Entry(models.Model):
    user = models.ForeignKey(User)
    pub_date = models.DateTimeField(default=now)
    title = models.CharField(max_length=200)
    slug = models.SlugField()
    body = models.TextField()

    def __unicode__(self):
        return self.title

    def save(self, *args, **kwargs):
        # For automatic slug generation.
        if not self.slug:
            self.slug = slugify(self.title)[:50]

        return super(Entry, self).save(*args, **kwargs)

This is my api.py:

from tastypie.resources import ModelResource
from links.models import Entry


class EntryResource(ModelResource):
    class Meta:
        queryset = Entry.objects.all()
        resource_name = 'entry'

This is my urls.py

from django.conf.urls import patterns, include, url
from links.api import EntryResource
# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    # Examples:

    # Uncomment the admin/doc line below to enable admin documentation:
    # url(r'^admin/doc/', include('django.contrib.admindocs.urls')),

    # Uncomment the next line to enable the admin:
    # url(r'^admin/', include(admin.site.urls)),
     (r'^api/', include(entry_resource.urls)),
)

I'm quite sure I am doing something rather silly. Just not able to find what though.

Upvotes: 0

Views: 714

Answers (1)

rafek
rafek

Reputation: 635

From official tastypie documentation (https://github.com/toastdriven/django-tastypie#whats-it-look-like):

# urls.py
# =======
from django.conf.urls.defaults import *
from tastypie.api import Api
from myapp.api import EntryResource

v1_api = Api(api_name='v1')
v1_api.register(EntryResource())

urlpatterns = patterns('',
    # The normal jazz here then...
    (r'^api/', include(v1_api.urls)),
)

Upvotes: 4

Related Questions