我是比較新的Django和Django的tastypie,所以我的問題可能是相當瑣碎。Django的Tastypie - 本地化,DB模式
我試圖實現與tastypie爲本地化的文本RESTful服務。
我的Django的資源有:
#The different languages
class Language(models.Model):
abbreviation = models.CharField(max_length=6)
name = models.CharField(max_length=100)
# The different Chapters in the book
class Chapter(models.Model):
name = models.CharField(max_length=200)
# The different Lines of the chapters (by sections)
class Line(models.Model):
chapter= models.ForeignKey(Chapter)
section = models.IntegerField()
line = models.IntegerField()
# The different translations of the line
class LineLanguage(models.Model):
language = models.ForeignKey(Language)
line = models.ForeignKey(Line)
text = models.TextField()
我那麼有tastypie資源:
class LanguageResource(ModelResource):
class Meta: queryset = Language.objects.all()
resource_name = 'language'
authorization = Authorization
class ChapterResource(ModelResource):
class Meta: queryset = Chapter.objects.all()
resource_name = 'chapter'
authorization = Authorization()
class LineResource(ModelResource):
chapter = fields.ForeignKey(ChapterResource, 'chapter')
class Meta: queryset = Line.objects.all()
resource_name = 'line'
authorization = Authorization()
class LineLanguageResource(ModelResource):
language= fields.ForeignKey(LanguageResource, 'language')
line = fields.ForeignKey(LineResource, 'line')
class Meta: queryset = LineLanguage.objects.all()
resource_name = 'lineLanguage'
authorization = Authorization()
起初我只想使用RESTful服務(因此我url.py僅包含 「url(r'^api/', include(v1_api.urls)),
」 ,但我無法得到我想要的:
我希望能夠通過一個單一的寧靜調用來檢索文本的特定行正確translat離子,但是在不知道LineLanguageID的情況下它是不可能的。
在使用tastypie之前。我曾在我的url.py,讓我用這種www.myapp.com/api/v1/language/chapter/section/line
的網址找到它的一些設置(以便於如www.myapp.com/api/v1/en/1/1/1
會回到我的英文第一章第一部分的第一行),但我想切換到RESTFUL api(主要是因爲我想試驗backbone.js)
我相信我的問題或者是我的模型/ tastypie資源的糟糕設計,或者缺乏關於如何將我的模型轉換爲適當的tastypie的知識資源。 你有什麼建議?
我曾考慮過改變模式(這是一種可能性),但我對這種數據庫設計的表現有點擔心。我想我會嘗試保留我當前的數據庫模式,也許評估如果使用tastypie是我的問題的最佳解決方案。謝謝! – srodriguez