首页 > 解决方案 > 无法上传和显示 django 表单

问题描述

1.views.py

from django.shortcuts import render
from . models import User
from .forms import Userform

def Home(request):
    if request.method == "POST":
        form = Userform(request.POST or None,request.FILES or None)
        if form.is_valid():
            form.save()
    else:
        form = Userform()
    return render(request,"home.html",{"form":form})

def read(request):
    read = User.objects.all()
    return render(request,"read.html",{"read":read})

2.models.py

from django.db import models

class User(models.Model):
    name = models.CharField(max_length=12)
    rollno = models.IntegerField()
    # files = models.FileField()

3.form.py

from django import forms
from .models import User

class Userform(forms.ModelForm):
    class Meta:
        model =  User
        fields = ('name','rollno')
    

网址.py

from django.contrib import admin
from django.urls import path
from app import views
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
    path('admin/', admin.site.urls),
    path("",views.Home,name="Home"),
    path("read/",views.read, name="read"),
]

urlpatterns+=static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)

4.home.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <form method="POST" action="read/" enctype="multipart/form-data">
        {%csrf_token%}
        {{form}}
    <button type=submit>click to submit</button>
    </form>
</body>
</html>

读取.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    {%block containt%}
    {%for i in read%}
    {{i.name}}
    {{i.rollno}}
  
    {%endfor%}
    {%endblock%}
</body>
</html>

我想使用表单向 django admin 添加数据,但数据未在 django admin 上传django admin 无法将数据上传到 django admin 因此无法读取它请帮助

标签: pythondjango

解决方案


问题出在表单的操作中,您在操作中输入了错误的 URL 您必须放置homeURL 而不是read/,因为您正在处理您的home函数中的表单提交,所以用这个替换您的表单操作

<form method="POST" action="{% url 'Home' %}" enctype="multipart/form-data">
        {%csrf_token%}
        {{form}}
    <button type=submit>click to submit</button>
    </form>

推荐阅读