python - 无法上传和显示 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 因此无法读取它请帮助
解决方案
问题出在表单的操作中,您在操作中输入了错误的 URL 您必须放置home
URL 而不是read/
,因为您正在处理您的home
函数中的表单提交,所以用这个替换您的表单操作
<form method="POST" action="{% url 'Home' %}" enctype="multipart/form-data">
{%csrf_token%}
{{form}}
<button type=submit>click to submit</button>
</form>
推荐阅读
- javascript - 如何在提交之前编写一个同步的 jQuery 对话框进行验证?
- javascript - 在 HTML5 画布上停止 OutSide 拖放并限制画布上拖动时的弧重叠
- uitableview - 表格视图单元格的自动高度尺寸无法正常工作
- google-cloud-platform - 如何通过服务帐户通过 Google BigQuery External Table 访问 Google Sheets Doc
- c# - 无法在弹性搜索节点中搜索插入的文档
- php - 如何使用 php 调用单独的函数文件?
- django - 使用 Reversion 应用程序 (DJANGO) 时如何从辅助模型中恢复文件
- html - 字体粗细不适用于下载的字体
- python - 十进制数列表输入
- java - 使用自动装配时,抽象类对象的子类为空