私は Django と Django のおいしいパイに比較的慣れていないので、私の質問は非常に些細なことかもしれません。
ローカライズ可能なテキスト用に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()
最初は安らかなサービスのみを使用したかった (したがって、私の url.py には " url(r'^api/', include(v1_api.urls)),
" しか含まれていませんが、必要なものを取得できません:
1 回の安らかな呼び出しで特定のテキスト行を正しい翻訳で取得できるようにしたいのですが、LineLanguageID を知らなければ不可能です。
TastyPieを使う前に。この種の URL を使用して検索できるように、url.py にいくつかの設定がありましたwww.myapp.com/api/v1/language/chapter/section/line
(たとえば www.myapp.com/api/v1/en/1/1/1
、最初の章の最初のセクションの最初の行が英語で返されるように)。 RESTFUL api へ (主に backbone.js で実験したいため)
私の問題は、モデル/taspypie リソースの設計が悪いか、モデルを適切なtaspypie リソースに変換する方法に関する知識が不足していることのいずれかだと思います。あなたの提案は何ですか?