私はDjango Rest Frameworkを使いこなしていますが、私はDRFで動作させるために、角度JSから "gem store"の例を複製しようとしています。入れ子オブジェクトからURLリストを返す
私はこのモデル
# Create your models here.
class Gem(models.Model):
name=models.CharField(max_length=200)
price = models.FloatField()
description = models.CharField(max_length=200)
def __str__(self):
return "{name} | {price}".format(name=self.name,price=self.price)
class GemGallery(models.Model):
gem=models.ForeignKey(Gem,related_name="gallery")
image=models.ImageField(upload_to=upload_path_handler)
を持っているが、それはちょうど私のエンティティを永続化し、その後、私は、ファイルに名前を付け、それをローカルに保存するために生成されたIDを取得し、upload_path_handler心配しないでください。
問題は私のシリアライザであり、私はそれがURLを返すなければならないので、画像の属性を指す「SlugRelatedField」を使用しようとしているが、私はこの例外を取得:
UnicodeDecodeError /時/「ASCII」コーデックlistGemsは、位置25でバイト0xb4 をデコードすることはできません:ない範囲で序(128)
おそらくURLは、シリアライザがサポートしていないか、私にはわからないという文字を持っています。
私は宝石のリストを取得したいだけで、すべての宝石の中には、オブジェクトに付属するGemGalleryセットからURLのリストを取得します。
これは私のシリアライザです:
class GemSerializer(serializers.ModelSerializer):
gallery = serializers.SlugRelatedField(
many=True,
read_only=True,
slug_field="image")
class Meta:
model = models.Gem
fields = ('id', 'name','description','price','gallery')