私がやろうとしているのは、次のコード ブロックでわかるように、モデルからのクエリ結果をモデル リソースに追加することです。
def dehydrate(self, bundle):
bundle.data['image'] = place_image.image.get(place=1).get(cardinality=0)
place=1 および cardinality=0 の place_site モデルの画像を含む PlaceResource にフィールドを追加したいと考えています。しかし、私はエラーを受け取ります:
The 'image' attribute can only be accessed from place_image instances
それで、私の質問は、tastypie モデルリソースで別のモデルからのクエリ結果を使用することは不可能ですか? 英語が下手で申し訳ありませんが、何か間違っている場合は修正してください。御時間ありがとうございます。完全なコードがあります:
モデル.py:
class place(models.Model):
idPlace = models.AutoField(primary_key=True)
Name = models.CharField(max_length=70)
class place_image(models.Model):
idImage = models.AutoField(primary_key=True)
place = models.ForeignKey(place,
to_field='idPlace')
image = ThumbnailerImageField(upload_to="place_images/", blank=True)
cardinality = models.IntegerField()
API.py
from models import place
from models import place_image
class PlaceResource(ModelResource):
class Meta:
queryset = place.objects.all()
resource_name = 'place'
filtering = {"name": ALL}
allowed_methods = ['get']
def dehydrate(self, bundle):
bundle.data['image'] = place_image.image.get(place=1).get(cardinality=0)
return bundle
class PlaceImageResource(ModelResource):
place = fields.ForeignKey(PlaceResource, 'place')
class Meta:
queryset = place_image.objects.all()
resource_name = 'placeimage'
filtering = {"place": ALL_WITH_RELATIONS}
allowed_methods = ['get']