在 django views.py 中获取 NameError ,因为 NameError : name 'edit_load_table' 没有定义


name 'edit_load_table' is not defined
Request Method: GET
Request URL:    http://127.0.0.1:8000/edit_load/N193
Django Version: 3.1.4
Exception Type: NameError
Exception Value:    
name 'edit_load_table' is not defined
Exception Location: C:UsersVirti Parekhprojectstrytotal_loadviews.py, line 45, in edit_load
Python Executable:  C:UsersVirti ParekhAppDataLocalProgramsPythonPython37python.exe
Python Version: 3.7.6
Python Path:    
['C:\Users\Virti Parekh\projects\try',
'C:\Users\Virti '
'Parekh\AppData\Local\Programs\Python\Python37\python37.zip',
'C:\Users\Virti Parekh\AppData\Local\Programs\Python\Python37\DLLs',
'C:\Users\Virti Parekh\AppData\Local\Programs\Python\Python37\lib',
'C:\Users\Virti Parekh\AppData\Local\Programs\Python\Python37',
'C:\Users\Virti '
'Parekh\AppData\Local\Programs\Python\Python37\lib\site-packages']
Server time:    Sat, 05 Dec 2020 19:04:19 +0000

我想从表"中获取特定的empId数据;edit_load_table";。当我点击loaddetails(作为锚标记(时,它将以表格格式获取特定empId数据的数据。

这是我的型号.py代码

class facultyload(models.Model):
empId = models.CharField(max_length=20)
name = models.CharField(max_length=50)
total_load = models.IntegerField()
def __str__(self):
return self.empId
class edit_load_table(models.Model):
empId = models.CharField(max_length=20) 
name = models.CharField(max_length=50)
subject_abv = models.CharField(max_length=10)
subject_load = models.IntegerField()
subject_type = models.CharField(max_length=10)
id_key = models.IntegerField()
semester = models.CharField(max_length=20)

def __str__(self):
return self.empId

这是我的观点.py代码

def edit_load(request, empId):
editload = edit_load_table.objects.get(str=empId)  
return render(request,"edit_load.html",{'editload':editload})

由于我的empId同时包含字母和数字,所以我给出了str=empId。在我的urls.py中,我通过了

path('edit_load/<str:empId>',views.edit_load)

任何人都可以帮助我解决这个错误,因为我是Django和python的新手。非常感谢。

edit_load.html
<!DOCTYPE html>
<html>
<head>
<title>Faculty's Subject wise Load</title>
{% load static %} 
<link rel="stylesheet" href="{% static 'styles/style-main.css' %}"/>
<link rel="stylesheet" href="{% static 'styles/css/bootstrap.min.css' %}"/>

</head>
<body>
<div class="center-div">
{% csrf_token %}
<br>
<br>
<h1>Faculty List with their load</h1>
<div class="table-responsive">
<table>
<thead>
<tr>
<th>Sr No.</th>
<th>Subject Name</th>
<th>Subject Load</th>
<th>Subject Type</th>
<th>Semester</th>
<th colspan="2">operation</th>
</tr>
</thead>                   
<tbody>
{% for faculty_load in edit_load %}
<tr>
<td>{{faculty_load.id_key}}</td>
<td>{{faculty_load.subject_abv}}</td>
<td>{{faculty_load.subject_load}}</td>
<td>{{faculty_load.subject_type}}</td>
<td>{{faculty_load.semester}}</td>
<td><a href="/facultysubjectDetails/{{faculty_load.id}}" ><span class="btn btn-success">Edit</span></a></td>
<td><a href="/deletedetails/{{faculty_load.id}}" ><span class="btn btn-danger">Delete</span></a></td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
</body>
</html>

我调用edit_load.html文件的代码段

<td><a href="/edit_load/{{loads.empId}}" data-toggle="tooltip" data-placement="top" title="load details"  name="load details" method="GET">Load Details</a></td>

我解决了上述错误,也解决了我在评论中提到的错误。我更改了代码的某些部分。在views.py中,我使用视图从一个ID返回多个数据引用。

views.py

def edit_load(request, empId):
parent = edit_load_table.objects.filter(empId=empId)
context = {'parent':parent}
return render(request,"edit_load.html",context)

在我之前的HTML文件中,我在edit_load%中使用了这个{%for faculty_load},这是错误的,在我得到我们必须传递我在上下文中提到的值之后,它给了我一个错误。

{% for loads in parent %}
<tr>
<td>{{loads.subject_abv}}</td>
<td>{{loads.subject_load}}</td>
<td>{{loads.subject_type}}</td>
<td><a href="/editfacultydetails/{{loads.id}}" ><span class="btn btn-sm btn-info">Edit</span></a></td>
<td><a href="/deletefacultydetails/{{loads.id}}" ><span class="btn btn-sm btn-danger">Delete</span></a></td>
</tr>
{% endfor %}

我希望我的回答会有用。此外,在评论中提到的建议对我很有用。非常感谢。

相关内容

最新更新