gpt4 book ai didi

python - ImageField() 不在 ModelForm 中保存图像 - Django/Python

转载 作者:太空狗 更新时间:2023-10-29 20:42:08 25 4
gpt4 key购买 nike

当我尝试从我的表单上传图片时,一切都在处理,但没有保存图片。

有人知道为什么会这样吗?

提前致谢!

models.py:

class Photo(models.Model):
user = models.ForeignKey(MyUser, null=False, blank=False)
category = models.ForeignKey("Category", default=1, null=True, blank=True)
title = models.CharField(max_length=30, null=True, blank=True)
description = models.TextField(max_length=120, null=True, blank=True)
image = models.ImageField(upload_to='user/photos/', null=True, blank=True)
slug = models.SlugField(null=True, blank=True)
active = models.BooleanField(default=True)
timestamp = models.DateTimeField(auto_now_add=True, auto_now=False, null=True)
updated = models.DateTimeField(auto_now_add=False, auto_now=True, null=True)

class Meta:
unique_together = ('slug', 'category')
ordering = ['-timestamp']

def __unicode__(self):
return "%s" %(self.user)

views.py:

def photo_upload_view(request, username):
u = MyUser.objects.get(username=username)

if request.method == 'POST':
form = PhotoUploadForm(request.POST, request.FILES)
if form.is_valid():
form.save()
messages.success(request, "Thank you! You have successfully posted your picture!")
return HttpResponseRedirect('/')
else:
form = PhotoUploadForm()

submit_btn = "Upload Post"

context = {
"form": form,
"submit_btn": submit_btn
}
return render(request, "photos/photo_upload.html", context)

forms.py:

class PhotoUploadForm(forms.ModelForm):

class Meta:
model = Photo
fields = ('user', 'category', 'title', 'description', 'image')

.html:

<form method='POST' action='{{ action_url }}'>{% csrf_token %}
{{ form|crispy }}
<input class='btn btn-default {{ submit_btn_class }}' type='submit' value='{{ submit_btn }}'/>
</form>

最佳答案

您应该添加 enctype=multipart/form-data 属性为 <form>标签:

<form method='POST' action='{{ action_url }}' enctype='multipart/form-data'>

关于python - ImageField() 不在 ModelForm 中保存图像 - Django/Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29171077/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com