因此,我开始使用 Django 的 TastyPie 插件为我的项目制作 REST api。我在我的项目中遵循了入门指南,但是当我进入 this point 时,当我应该放置外键时,它开始给我一些错误。
当我做一个简单的获取时,主要是这样的:
"Reverse for 'api_dispatch_detail' with arguments '()' and keyword arguments '{'pk': 246, 'api_name': 'v1', 'resource_name': 'typep'}' not found."
resources.py 中的代码:
class TypeOfPlaceResource(ModelResource):
class Meta:
queryset = TypeOfPlace.objects.all()
resource_name = 'typep'
allowed_methods = ['get']
class POIResource(ModelResource):
typep = ForeignKey(TypeOfPlaceResource, 'typep')
class Meta:
queryset = PointOfInterest.objects.all()
resource_name = 'pois'
filtering = {
"code1": ALL,
"code2": ALL,
}
和模型:
class TypeOfPlace (models.Model):
name = models.CharField(max_length=100, blank=True)
code = models.CharField(max_length=20, unique=True)
def __unicode__(self):
return self.name
class PointOfInterest(GeoInformation):
name = models.CharField(max_length=100,blank=True)
code1 = models.CharField(max_length=4,null=True, unique=True)
code2 = models.CharField(max_length=4,null=True, unique=True)
typep = models.ForeignKey(TypeOfPlace)
def __unicode__(self):
return self.name
urls.py
api = Api(api_name='v1')
api.register(TypeOfPlaceResource(), canonical=True)
api.register(POIResource(), canonical=True)
urlpatterns = api.urls
那么,我做错了什么吗?还是遗漏了什么?任何帮助将非常感激 ! :D
最佳答案
我的问题的最终答案是来自 @manji 和 @dlrust 的答案:
“将 urlpatterns
值更改为 urlpatterns = patterns('', (r'^api/', include(api.urls)),)
”
然后,“在您的 Meta 中为资源定义授权”。
希望它对其他人有用,就像对我有用:)
关于python - Tastypie 中的外键,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5756205/