我试图构建一个表单,使用户能够将图片从网站上传到Media\Images文件夹。
我尝试了这个,但没用
模型.py
from django.db import models
# Create your models here.
class imgUpscalling(models.Model):
Image = models.ImageField(upload_to='images/')
forms.py
from django import forms
from .models import imgUpscalling
class ImageForm(forms.ModelForm):
class Meta:
model = imgUpscalling
fields = ('Image',)
views.py
def img_upscaler(request):
context = {'from': ImageForm()}
return render(request, "upsc_main.html",context)
模板.html
<h1>Image Upscaler & Enhanced Resolution</h1>
<h2>Select the Image</h2>
<form method = "post" enctype="multipart/form-data">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Upload</button>
</form>
你能通知我我在代码中犯的错误吗?因为模板中没有显示该表单。 提前非常感谢
这里有几件事:
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
urlpatterns = [] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
if settings.DEBUG:
static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
您的视图应该如下所示:
def upload_image(request):
if request.method == 'POST':
form = ImageForm(request.POST, request.FILES) # ensure you include request.files
if form.is_valid():
form.save()
return redirect('upsc_main.html') # Redirect to a success page
else:
form = ImageUploadForm()
return render(request, 'yoururl.html', {'form': form})
然后显然配置您的应用程序 urls.py、html 模板等。