2013-08-22 4 views
5

J'ai un problème lors du développement d'une API avec tastypie. Ce que je veux essentiellement c'est de savoir s'il y a un moyen de publier une image sur tastypie directement dans json.Comment télécharger un fichier/image via tastypie

Dans mes modèles, je suis en ce moment à l'aide d'un ImageField:

class MyClass(models.Model): 
     description = models.TextField() 
     user = models.ForeignKey(User) 
     photo = models.ImageField(upload_to="image", null=True, blank=True) 

Puis dans mon fichier api:

class InquiryResource(ModelResource): 
     user = fields.ForeignKey(UserResource, 'user' ,full=True) 
     photo = fields.FileField(attribute = 'photo', null=True, blank = True) 

     class Meta : 
      queryset = MyClass.objects.all() 
      resource_name = "MyClass" 
      authorization = Authorization() 

Quand je vous envoie ce JSON de base avec seulement l'utilisateur et la description qu'il fonctionne bien. Ensuite, quand je vais ajouter des informations sur mon image:

{ ... , 
    photo : { 
     Content-Type : "image/png", 
     file : "base64string", <----- this one contains the file as a long string 
     name : "test.png" 
    } ...} 

Je reçois un message d'erreur: objets « dict » n'a pas d'attribut « _commited »

Y at-il une « manière propre » pour télécharger un fichier nativement avec tastypie ou devrais-je utiliser Base64FileField?

Merci

+2

Vous devez écrire une coutume 'hydrate_photo()' fonction qui prend dans votre JSON sous-document et remplit le FileField - TastyPie ne supporte pas ce que vous essayez de faire dès la sortie de la boîte. – cpf

+0

Ok merci pour votre réponse –

Répondre

Questions connexes