Django 错误消息:员工匹配查询不存在
我的本地数据库中有模型Employee和同一个表。我需要有可能编辑任何记录并保存在本地。当我在webflow\u id字段中有内容时,我在尝试选择编辑选项时出现此错误:员工匹配查询不存在。 当我尝试编辑没有此webflow_id的记录时,它不会更改,但会创建一个新记录 my views.py: def staff_edit(请求,webflow_id): models.py:Django 错误消息:员工匹配查询不存在,django,Django,我的本地数据库中有模型Employee和同一个表。我需要有可能编辑任何记录并保存在本地。当我在webflow\u id字段中有内容时,我在尝试选择编辑选项时出现此错误:员工匹配查询不存在。 当我尝试编辑没有此webflow_id的记录时,它不会更改,但会创建一个新记录 my views.py: def staff_edit(请求,webflow_id): models.py: class Employee(models.Model): webflow_id = models.CharFi
class Employee(models.Model):
webflow_id = models.CharField(max_length=100, primary_key=True, default=True)
first_name = models.CharField(max_length=100)
last_name = models.CharField(max_length=100, default=True)
email = models.EmailField(max_length=100)
user_type = models.CharField(max_length=100)
status = models.CharField(max_length=100, default=True)
roles = models.ManyToManyField('Role', through='EmployeeRole')
def __str__(self):
return self.webflow_id + " " + self.email + " " + self.first_name + " " + self.last_name
这是我的通用html staff.html:
$(document).ready(function() {
var data;
fetch("http://192.168.2.85:8000/fetchapi_employees/")
.then(response => response.json())
.then(json => data = json)
.then(() => {console.log(data); //this gave me Array of objects from my database
$('#datatable').DataTable( {
data: data.employees,
deferRender: true,
scrollY: false,
scrollX: false,
scrollCollapse: true,
scroller: true,
"columns": [
{ data: "webflow_id" },
{ data: "first_name" },
{ data: "last_name" },
{ data: "email" },
{ render: function ( data, type, row ) {
return '<a href="http://192.168.2.85:8000/staff/edit/' + row.webflow_id + '"><i class="far fa-edit fa-lg" aria-hidden="true"></i></a>';
} },
{ render: function ( data, type, row ) {
return '<i class="fa fa-plus-circle" aria-hidden="true"></i>';
} },
],
"order": [[1, 'asc']]
} )
})
} );
这是我的URL.py:
path('staff/edit/<int:webflow_id>', views.staff_edit, name="staffedit"),
path('staff/edit/',views.staff\u edit,name=“staffedit”),
有人能看到我遗漏了什么吗?
致以最良好的祝愿
webflow\u id
是一个CharField
webflow_id=models.CharField(最大长度=100,默认值=True)
Url参数必须包含字符串:
path('staff/edit/<str:webflow_id>', views.staff_edit, name="staffedit"),
对于get
方法,我也会使用Try-Except:
from django.http import Http404
try:
Employee.objects.get(webflow_id=webflow_id)
except Employee.DoesNotExist:
raise Http404("Employee DoesNotExist")
嗨,谢谢你的固定数据类型,我没有注意到。但现在,当我试图编辑我得到的一些记录时:Page not found(404)@dev,您必须使用
Employee.objects.get(webflow\u id=webflow\u id)
。您的webflow\u id不是主键。@dev,您的webflow\u id
也不是主键。如果您想将其用作主键,您必须添加primary_key=True
@dev,请参阅修复,我更新了我的答案。您好,我仍然没有找到页面(404),我更新了我的models.py和staff_编辑功能,您能看一下吗?
path('staff/edit/<int:webflow_id>', views.staff_edit, name="staffedit"),
path('staff/edit/<str:webflow_id>', views.staff_edit, name="staffedit"),
webflow_id = models.CharField(max_length=100, primary_key=True)
from django.http import Http404
try:
Employee.objects.get(webflow_id=webflow_id)
except Employee.DoesNotExist:
raise Http404("Employee DoesNotExist")