我正在使用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))
答案 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")