【发布时间】:2018-08-30 17:08:51
【问题描述】:
用户在表单中输入数据。但是在表单中输入的数据不会显示在数据库中。
views.py
def add(request):
if request.method=='POST':
form=FilesCreate(request.POST)
if form.is_valid():
form.save()
return render(request,'plagiarism/page1.html',{'form':FilesCreate()})
def add2(request):
if request.method=='POST':
form2=FilesCreate2(request.POST)
if form2.is_valid():
form2.save()
return render(request,'plagiarism/page2.html',{'form':FilesCreate2})
models.py
from django.db import models
class File1(models.Model):
#user=models.ForeignKey(User)
firstfile=models.CharField(max_length=1000, default="")
#secondfile=models.CharField(max_length=1000)
def __str__(self):
return self.firstfile
剽窃/page1.html
<h1>Enter your first file</h1>
<form action="file2/" method="post">
{% csrf_token %}
{% for field in form %}
{{field}}
<input type="submit" value="Submit file1"/>
{% endfor %}
</form>
plagiarism/page2.html(在第1页点击提交后显示页面)
<h1>Enter your second file</h1>
<form action="plagiarism/file2/result/" method="post">
{% csrf_token %}
{% for field in form %}
{{field}}
<input type="submit" value="Get Results"/>
{% endfor %}
</form>
{% block h1 %}
{% endblock %}
<body>
plagiarism/page3.html(在第2页点击提交后显示页面)
<h1> Here is your Result </h1>
<h2>
{{data}}
</h2>
</body>
forms.py
from django.forms import ModelForm
from django import forms
from plagiarism.models import File1,File2
class FilesCreate(ModelForm):
class Meta:
model=File1
exclude=()
widgets={'firstfile':forms.Textarea(attrs={'cols':50,'rows':100})}
example.py
from django.shortcuts import render
def getresult(request):
data=95.5
return render(request,'plagiarism/page3.html',{'data': data})
urls.py
from django.conf.urls import url
from . import views
from . import example3
urlpatterns=[
url(r'^$',views.add,name='add'),
url(r'file2/$',views.add2,name='add2'),
url(r'file2/result/$',example3.getresult,name='getresult')
]
【问题讨论】:
-
你在哪里显示数据?但是请注意,尽管您检查了表单是否有效,但您并没有告诉用户它是否无效;或重定向离开。大概这里发生的事情是表单确实无效。
-
当用户在表单中输入文本时,我希望我的数据进入数据库。如果表单是有效的,当用户点击提交时,页面被重定向到另一个页面(我被重定向到我在输入数据并点击提交时创建的另一个页面)
-
您能出示您的
urls.py文件吗? -
我没有仔细阅读你的代码,我以为你在上传文件。您还需要显示视图
add2,因为这是处理表单的内容。但是您不需要额外的视图,您可以使用add处理表单。 -
我已经根据你们中的一些人的要求更新了代码中的所有细节。我不想上传任何文件。我需要做的就是用户应该在表单中输入数据,输入的数据应该进入数据库。
标签: python django database pycharm