【发布时间】:2021-10-13 19:15:18
【问题描述】:
我刚刚开始学习 Django,并且正在制作我的第一个应用程序。当我将记录添加到数据库时,我遇到了一个奇怪的问题,它实际上将它添加到那里,但它不会在我的页面上显示它们,直到我通过以下命令重新加载服务器
python manage.py runserver
views.py
from django.shortcuts import render, redirect
from .models import Students
student_data = Students.objects.all()
def homePage(request):
return render(
request,
"pages/homePage.html",
{"student_data": student_data},
)
def createStudent(request):
form = StudentForm()
if request.method == "POST":
form = StudentForm(request.POST, request.FILES)
if form.is_valid():
form.save()
return redirect("homePage")
context = {"form": form}
return render(request, "pages/addStudent.html", context)
def updateStudent(request, pk):
student = Students.objects.get(unique_id=pk)
form = StudentForm(instance=student)
if request.method == "POST":
form = StudentForm(request.POST, request.FILES, instance=student)
if form.is_valid():
form.save()
return redirect("homePage")
context = {"form": form}
return render(request, "pages/addStudent.html", context)
def deleteStudent(request, pk):
student = Students.objects.get(unique_id=pk)
if request.method == "POST":
student.delete()
return redirect("homePage")
context = {"object": student}
return render(request, "pages/delete-template.html", context)
def viewStudent(request, pk):
student = Students.objects.get(unique_id=pk)
context = {"student": student}
return render(request, "pages/view_student.html", context)
models.py
class Students(models.Model):
name = models.CharField(max_length=200)
surname = models.CharField(max_length=200)
card_id = models.IntegerField()
unique_id = models.UUIDField(
default=uuid.uuid4,
unique=True,
primary_key=True,
editable=False)
student_image = models.ImageField(null=True, blank=True, default="default_student.jpg")
class Meta:
verbose_name_plural = 'Students'
#Methods
def __str__(self):
return f'{self.name} {self.surname}'
addStudent.html
{% extends "main.html" %}
{% block addStudent %}
<form method="POST" enctype="multipart/form-data">
{% csrf_token %}
{{form.as_p}}
<input type="submit"/>
</form>
{% endblock addStudent %}
这是我主页的图片: Home Page
这是在数据库中创建记录的表单: addStudent.html page
但是在提交表单后,django 没有向我显示记录,我刚刚创建。 它什么也不显示。
我需要重启服务器才能看到记录:
我认为在我开始使用静态文件并添加后出现了该错误
student_image = models.ImageField(null=True, blank=True, default="default_student.jpg")
以前有人遇到过这个问题吗?
【问题讨论】:
-
你能添加应该显示创建记录的视图吗?
-
如果您想在不刷新的情况下查看添加到数据库的数据,您可以使用 ajax
-
@IainShelvington 添加了
-
@PapisSahine 也许,但在我开始使用静态文件之前它工作得很好。我想弄清楚此时出了什么问题,它一定对将来遇到同样问题的人有用
-
添加为您的主页提供服务的视图,您使用的查询集可能有问题
标签: django django-models django-forms django-templates