无法使用表单将图像上传到 Django:404 POST / not found

问题描述 投票:0回答:1

我试图创建一个网页,用户可以在其中上传他们的图像并将它们存储在 Django 中,但由于某种原因我无法上传它。

This is what I get when I hit the upload button

已关注这些教程.

这是html代码

 <form action="." method="POST" enctype="multipart/form-data">
            {% csrf_token %}
            {{form.as_p}}
            <button type="submit" class="btn btn-lg btn-success">Upload</button>
            </form>

设置.py

STATIC_URL = 'static/'
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR,'media')
STATICFILES_DIRS = (os.path.join(BASE_DIR,"static"), )
应用Lightings下的

models.py

from django.db import models
from django.contrib.auth.models import User

class MovieImage(models.Model):
    image_upload=models.ImageField(null=True,blank=True,upload_to="userimages/")
    

表格.py

from django import forms
from .models import *

class MovieImageForm(forms.ModelForm):
    class Meta:
        model=MovieImage
        fields=('image_upload',)
        labels={
            'image_upload':'',
        }

views.py

from django.shortcuts import render
from .forms import MovieImageForm
from .models import *
# Create your views here.
def startlighting(request):
    return render(request,'Lightings.html')

def index(request):
    if request.method == "POST":
        form=MovieImageForm(request.POST,request.FILES)
        if form.is_valid():
            form.save()
            return render(request,"Lightings.html")
    else: 
        form=MovieImageForm()
    return render(request,'Lightings.html',{'form':form})

urls.py 在项目级别

from django.contrib import admin
from django.urls import path,include
from homepage.views import start
from About.views import aboutstart
from Lightings.views import startlighting
from django.conf import settings
from django.conf.urls.static import static
from Lightings.views import *

urlpatterns = [
    path('admin/', admin.site.urls),
    path("home",start),
    path("About",aboutstart),
    path("Lightings",startlighting),
    path("Lightings",index)
]
if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
django django-forms django-urls django-staticfiles
1个回答
0
投票

您将请求发送到错误的网址。你应该去http://127.0.0.1/8000/Lightings url。您已在此 url 下注册了两个基于函数的视图。

© www.soinside.com 2019 - 2024. All rights reserved.