python - 更新 Django 数据库的问题
问题描述
大家好,我在更新数据库基础列表中的数据时遇到了困难。呈现编辑页面,但未显示任何输入表单。
大家好,我在更新数据库基础列表中的数据时遇到了困难。呈现编辑页面,但未显示任何输入表单。
视图.py
def edit_result(request, id):
instance = StudentResult.objects.filter().first()
form = ResultModelForm(request.POST or None, instance=instance)
if form.is_valid():
form.save()
return redirect('studentportal:student_detail')
return render (request,'studentportal/edit_result.html', {'form':form })
网址.py
path('edit_result/<int:id>', views.edit_result, name ="edit_result")
模型.py
class Student(models.Model):
userprofile = models.ForeignKey(UserProfileInfo, on_delete=models.CASCADE, related_name='myuser')
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
profile_pic = models.ImageField(upload_to=student_image, verbose_name="ProfilePicture", blank=True)
level = models.IntegerField()
guardian_email = models.EmailField()
guardian_phone = models.IntegerField()
def __str__(self):
return self.first_name
def get_absolute_url(self):
return reverse("studentportal:student_detail", kwargs={"pk": self.id})
class StudentResult(models.Model):
student = models.ForeignKey(Student, on_delete=models.CASCADE, related_name='myresult')
english = 'english'
mathematic = 'mathematic'
physic = 'physic'
chemistry = 'chemistry'
computer = 'computer'
agric = 'agric'
subject = [
(english, 'english'),
(mathematic, 'mathematic'),
(physic, 'physic'),
(chemistry, 'chemistry'),
(computer, 'computer'),
(agric, 'agric'),
]
subject = models.CharField(max_length=50, choices=subject)
# subject = models.CharField(max_length=50)
exam = models.IntegerField()
test = models.IntegerField()
total = models.IntegerField()
def __str__(self):
return self.subject
表格.py
class StudentModelForm(forms.ModelForm):
class Meta:
model = Student
fields = ('userprofile','first_name','last_name','profile_pic','level','guardian_email','guardian_phone')
class ResultModelForm(forms.ModelForm):
class Meta:
model = StudentResult
fields = ('student','subject','test','exam','total')
编辑按钮链接所在的 Temple html
{% for check in student.myresult.all %}
<tr>
<td>{{ check }}</td>
<td>{{ check.test }}</td>
<td>{{ check.exam }}</td>
<td>{{ check.total }}</td>
<td><div><a href="{% url 'studentportal:edit_result' student.id %}"><i class="fa fa-pencil-square-o"></i> </a>
</div></td>
<td><div><a href=" url 'studentportal:delete_result' "><i class="fa fa-trash"></i> </a>
</div></td>
</tr>
{% endfor %}
</table>
</div>
```
**Error message**
DoesNotExist at /edit_result/1
StudentResult matching query does not exist.
Request Method: GET
Request URL: http://127.0.0.1:8000/edit_result/1
Django Version: 3.2
Exception Type: DoesNotExist
Exception Value:
StudentResult matching query does not exist.
Exception Location: /data/data/com.termux/files/usr/lib/python3.9/site-packages/django/db/models/query.py, line 435, in get
Python Executable: /data/data/com.termux/files/usr/bin/python
Python Version: 3.9.5
Python Path:
['/storage/emulated/0/schnew',
'/data/data/com.termux/files/usr/lib/python39.zip',
'/data/data/com.termux/files/usr/lib/python3.9',
'/data/data/com.termux/files/usr/lib/python3.9/lib-dynload',
'/data/data/com.termux/files/usr/lib/python3.9/site-packages']
Server time: Sat, 29 May 2021 17:19:42 +0000
Traceback Switch to copy-and-paste view
/data/data/com.termux/files/usr/lib/python3.9/site-packages/django/core/handlers/exception.py, line 47, in inner
response = get_response(request) …
▶ Local vars
/data/data/com.termux/files/usr/lib/python3.9/site-packages/django/core/handlers/base.py, line 181, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs) …
▶ Local vars
/storage/emulated/0/schnew/studentportal/views.py, line 127, in edit_result
instance = StudentResult.objects.get(id=id) …
▶ Local vars
/data/data/com.termux/files/usr/lib/python3.9/site-packages/django/db/models/manager.py, line 85, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs) …
▶ Local vars
/data/data/com.termux/files/usr/lib/python3.9/site-packages/django/db/models/query.py, line 435, in get
raise self.model.DoesNotExist( …
▶ Local vars
![enter image description here](https://i.stack.imgur.com/CwVvM.png)
解决方案
- 您正在尝试访问尚未作为上下文传递给模板的变量
推荐阅读
- python - 如何从 yfinance 将每个数据框重命名为股票名称
- python - 如何将 main.py 文件拆分为多个文件?
- javascript - 通过 Patch 方法更新 Yaml 文件不起作用
- javascript - VSCode 中的扩展/设置变量“#XXXXXX”的显示预览颜色
- python-3.x - String time convert to only timestamp using python
- schema - 如何在不截断输出的情况下在 Databricks 中打印模式?
- c# - FluentMigrator - 将列添加到循环中的每个表
- excel - excel合并单元格复制粘贴问题
- pytorch - 给定组=1,大小为 [32, 3, 3, 3] 的权重,预期输入 [1, 1, 32, 340] 有 3 个通道,但有 1 个通道
- python - 将 SpaCy 输出添加到现有数据框时,列不对齐