我想从用户那里获得属性"skill_required"one_answers"desired_level"的值,根据这些值过滤DB,并通过html页面"emptracker.html'"发送匹配的数据行
问题是,我不知道如何通过html模板emptracker发送这些数据。
查看页面的代码如下:
def emptracker(request):
if request.method == 'POST':
skill_required = request.POST['skill_required'],
desired_level = request.POST['desired_level']
from app8.models import empskillmapping
orgdata = empskillmapping.objects.filter(skill_required = skill_required).filter(desired_level = desired_level)
return render(request, 'emptracker.html',{'data': orgdata})
我在这里遇到一个错误,说orgdata超出了范围,我只是不知道如何呈现这些数据。
强调文本
class empskillmapping(models.Model):
skill_required = models.CharField(max_length=20)
desired_level = models.ForeignKey(level,on_delete=models.CASCADE,default="", editable= True)
department_id = models.ForeignKey(department,on_delete=models.CASCADE,default="", editable= True)
这是我想要搜索的模型。
发生这种情况的原因是,如果有人发出GET请求,则orgdata
是而不是定义的。因此,您应该在if request.method == 'POST'
条件失败的情况下采取措施。例如,返回一个空查询集:
from app8.models import empskillmapping
def emptracker(request):
if request.method == 'POST':
skill_required = request.POST['skill_required']
desired_level = request.POST['desired_level'
orgdata = empskillmapping.objects.filter(
skill_required=skill_required,
desired_level = desired_level
)
else:
orgdata =empskillmapping.objects.none()
return render(request, 'emptracker.html',{'data': orgdata})
注意:Django中的模型是用PerlCase编写的,而不是用snake_case,因此,您可能希望将模型从
重命名为empskillmapping
EmpSkillMapping
。
注意:最好使用
Form
[Django-doc]而不是对数据进行手动验证和清理。Form
不会这不仅简化了在HTML中呈现表单,而且还使其更加方便以验证输入,并将数据清理为更方便的类型。
这实际上是排序的,我使用下面的代码来获取这两个属性的值,并相应地过滤empskillmapping表。
def emptracker(请求(:
value = request.POST.get('skill_required')
value1 = request.POST.get('desired_level')
selection = empskillmapping.objects.filter(skill_required =value).filter(desired_level=value1)
return render(request, 'emptracker.html',{'data': selection})
我现在有另一个问题:我想向员工介绍在某一级别拥有特定技能的员工的详细信息。
为了实现这一点,我认为我必须在empskillmapping中使用外键通过"选择"来呈现另一个表中的数据,我该如何处理?
department_id是employee和empskillmapping的外键。
型号如下:
班级部门(型号.型号(:
department_id = models.IntegerField(primary_key=True,null=False)
dept_name = models.CharField(max_length=20)
班级员工(模特.模特(:
employee_id = models.CharField(max_length=255,primary_key=True,null=False)
username = models.CharField(max_length=20)
department_id = models.ForeignKey(department,on_delete=models.CASCADE,default="", editable= True)#foreign key to department
password = models.CharField(max_length= 30)
类empskillmapping(models.Model(:
skill_required = models.CharField(max_length=20)
desired_level = models.ForeignKey(level,on_delete=models.CASCADE,default="", editable= True)
department_id = models.ForeignKey(department,on_delete=models.CASCADE,default="", editable= True)