ValueError ..'image'属性没有与之关联的文件

时间:2018-05-03 08:57:08

标签: python django

我正在使用Django 1.11.11 / Python 2.7.5 我有一个Photo模型,可以上传多个图像。此型号出错:https://ibb.co/m3XLDn

照片模特:

class Photo(models.Model):
    produit = models.CharField(
        _("Produit (code utile pour le tri des choix):"), 
        max_length=2000, 
        blank=True, 
        null=False
        )
    legende = models.CharField(
        _("Légende:"), 
        max_length=200, 
        blank=True, 
        null=False
        )
    image = models.ImageField(
        upload_to='fiche_image', 
        blank=True, 
        null=False
        )

    def __str__(self):
        return self.produit or "undefined"
        # return str(self.produit)

    class Meta:
        ordering = ['produit', 'legende', 'image']

我不确定导致问题的原因。

new_photo视图:

def new_photo(request):
if request.method == "POST":
    photo_form = forms.PhotoForm(request.POST, request.FILES, prefix="photo")
    if photo_form.is_valid():
        photo = photo_form.save()
        photo.save()
        return HttpResponse(json.dumps({"id": photo.pk, "produit": photo.produit, "legende": photo.legende, "name": photo.image.name}))
    else:
        HttpResponseBadRequest()
elif request.method == "GET":
    print(models.Photo.objects.all())
    photos = {}
    for p in models.Photo.objects.all():
        photos[p.pk] = {"produit": p.produit, "legende": p.legende, "name": p.image.name}
        print(p.image.name)
        print(p.image.url)
    return HttpResponse(json.dumps(photos))

1 个答案:

答案 0 :(得分:2)

您没有与Photo对象关联的文件。因此,通过说“'image'属性没有与之关联的文件”来引发错误“。因为字段image允许存储空值。在这种情况下,将没有与Photo对象关联的文件。

您可以查看以下内容

obj = Photo.objects.get(pk=<some int>)
if obj.image:
    print(obj.image.url)
else:
    print("No image assigned to object")