1

post モデルと postImage モデルがあります。

class PostImage(models.Model):
    post =  models.ForeignKey(Post, related_name="images")
    # @@@@ figure out a way to have image folders per user...
    image = models.ImageField(upload_to='images')
    description = models.CharField(max_length=100)
    order = models.IntegerField()

私は両方のtastypieリソースを作成しました:

class PostImageResource(ModelResource):
    class Meta:
        queryset = PostImage.objects.all()
        resource_name = 'postImage'


class PostResource(ModelResource):
    images = fields.ForeignKey(PostImageResource, 'images', full=True)
    class Meta:
        queryset = Post.objects.all()
        resource_name = 'post'

を参照しようとするとapi/v1/post/?format=json、次のエラーが表示されます。

The object '' has an empty attribute 'image' and doesn't allow a default or null value.

PostImages はまだありません。

images = fields.foreignKeyの行を削除すると、PostResource機能します。を参照するとapi/v1/postImage/?format=json、エラーは表示されず、空のコレクションだけが表示されます。

4

1 に答える 1

2

これを試して:

class PostResource(ModelResource):
    images = fields.OneToManyField(PostImageResource, 'images', full=True)
    class Meta:
        queryset = Post.objects.all()
        resource_name = 'post'

------- 編集 -------

うーん...

あなたのモデルでは:

class PostImage(models.Model):
    post =  models.ForeignKey(Post, related_name="images")
    image = models.ImageField(upload_to='images', null=True, blank=True)
    description = models.CharField(max_length=100)
    order = models.IntegerField()

null=True および blank=True に注意してください。

于 2012-07-12T21:14:20.750 に答える