Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 主页的Django上下文值_Python_Django_Django Models_Django Views_Django Urls - Fatal编程技术网

Python 主页的Django上下文值

Python 主页的Django上下文值,python,django,django-models,django-views,django-urls,Python,Django,Django Models,Django Views,Django Urls,我有一个模型,它接受管理员的布尔更新。如果管理员单击它,最终用户可以或不能访问a视图。问题在于,可以通过主页访问该视图,该主页有一个基本文件,并且需要用户的id进行检查。 我在/home/NoReverseMatch收到此错误 我无法理解如何将上下文值传递给基文件。我不想为创建另一个视图,因为它是一个基本文件 我尝试使用上下文处理器,但在home.view中出现此错误 int()参数必须是字符串或数字,而不是内置函数或方法 我在context_处理器中有两个函数,每个函数都有自己的特点 这是密码

我有一个模型,它接受管理员的布尔更新。如果管理员单击它,最终用户可以或不能访问a视图。问题在于,可以通过主页访问该视图,该主页有一个基本文件,并且需要用户的id进行检查。 我在/home/NoReverseMatch收到此错误 我无法理解如何将上下文值传递给基文件。我不想为创建另一个视图,因为它是一个基本文件

我尝试使用上下文处理器,但在home.view中出现此错误 int()参数必须是字符串或数字,而不是内置函数或方法

我在context_处理器中有两个函数,每个函数都有自己的特点

这是密码

设置.py

模板=[{
'BACKEND':'django.template.backends.django.DjangoTemplates',
“DIRS”:[],
“应用程序目录”:正确,
“选项”:{
“上下文处理器”:[
“django.template.context_processors.debug”,
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
“projectfiles.context\u processors.emp\u base\u context”,
“projectfiles.context\u processors.lev\u base\u context”,
],},},]
型号.py

class员工(models.Model):
允许=models.BooleanField(默认值=True)
employee_name=models.OneToOneField(用户,on_delete=models.CASCADE)
员工名称=型号.字符字段(最大长度=5)
employee\u department=models.CharField(最大长度=5)
年假=models.PositiveSmallIntegerField(默认值=5)
病假=models.PositiveSmallIntegerField(默认值=5)
休闲假=模型。积极的AllintegerField(默认值=5)
Half_pay=models.PositiveSmallIntegerField(默认值=5)
紧急离开=型号。积极的AllintegerField(默认值=5)
课堂假期(models.Model):
employee_leaves=models.ForeignKey(employee,on_delete=models.CASCADE)
left_Type=models.CharField(最大长度=25)
保留数量=型号。正MallintegerField(默认值=0)
description=models.CharField(最大长度=75,空白=True,空=True)
submit\u date=models.DateTimeField(自动\u now\u add=True)
from\u date=models.DateField(auto\u now=False,auto\u now\u add=False)
to_date=models.DateField(auto_now=False,auto_now_add=False)
leve_status=models.CharField(最大长度=10,默认值为“待定”)
context\u processors.py

from.models导入员工、休假
def emp_base_上下文(请求):
emp_data=Employee.objects.get(id=id)
返回{
'emp_base_context':emp_base_context}
url.py

urlpatterns=[
url(r'^(?i)Home/$',views.Home,name='Home-Page'),
url(r'^(?i)request/(?P\d+)$),views.request\u leave,
name='Leave-Page'),#请假请求
视图.py


def请假(请假,emp id):#请假
employee=employee.objects.get(id=emp\u id)
如果employee.allowed==True:
表格=请假表格(请寄)
如果form.is_有效():
abc=form.save(commit=False)
abc.employee\u leaves=request.user.employee
abc.save()
形式=离开形式
上下文={'employee':雇员,'form':form}
返回渲染(请求'projectfiles/reqleave.html',上下文)
其他:
返回渲染(请求“projectfiles/banked.html”)
base.html


class=“Glypicon文件夹关闭”>休假管理系统
请求页面****
一年生
剩余叶 紧急情况
剩余叶片 病假
剩余的假期 随意的
剩余的叶子
错误

Environment:


Request Method: GET
Request URL: http://127.0.0.1:8000/home/

Django Version: 1.11.20
Python Version: 2.7.16
Installed Applications:
['django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'projectfiles',
 'crispy_forms']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware']



Traceback:

File "C:\Python27\lib\site-packages\django\core\handlers\exception.py" in inner
  41.             response = get_response(request)

File "C:\Python27\lib\site-packages\django\core\handlers\base.py" in _get_response
  187.                 response = self.process_exception_by_middleware(e, request)

File "C:\Python27\lib\site-packages\django\core\handlers\base.py" in _get_response
  185.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "C:\Users\Bitswits 3\Desktop\Intern Work\LMS\LMS\projectfiles\views.py" in home
  25.     return render(request, "projectfiles/HomePage.html")

File "C:\Python27\lib\site-packages\django\shortcuts.py" in render
  30.     content = loader.render_to_string(template_name, context, request, using=using)

File "C:\Python27\lib\site-packages\django\template\loader.py" in render_to_string
  68.     return template.render(context, request)

File "C:\Python27\lib\site-packages\django\template\backends\django.py" in render
  66.             return self.template.render(context)

File "C:\Python27\lib\site-packages\django\template\base.py" in render
  205.                 with context.bind_template(self):

File "C:\Python27\lib\contextlib.py" in __enter__
  17.             return self.gen.next()

File "C:\Python27\lib\site-packages\django\template\context.py" in bind_template
  263.             updates.update(processor(self.request))

File "C:\Users\Bitswits 3\Desktop\Intern Work\LMS\LMS\projectfiles\context_processors.py" in emp_base_context
  7.     emp_data = Employee.objects.get(id=id)

File "C:\Python27\lib\site-packages\django\db\models\manager.py" in manager_method
  85.                 return getattr(self.get_queryset(), name)(*args, **kwargs)

File "C:\Python27\lib\site-packages\django\db\models\query.py" in get
  371.         clone = self.filter(*args, **kwargs)

File "C:\Python27\lib\site-packages\django\db\models\query.py" in filter
  787.         return self._filter_or_exclude(False, *args, **kwargs)

File "C:\Python27\lib\site-packages\django\db\models\query.py" in _filter_or_exclude
  805.             clone.query.add_q(Q(*args, **kwargs))

File "C:\Python27\lib\site-packages\django\db\models\sql\query.py" in add_q
  1250.         clause, _ = self._add_q(q_object, self.used_aliases)

File "C:\Python27\lib\site-packages\django\db\models\sql\query.py" in _add_q
  1276.                     allow_joins=allow_joins, split_subq=split_subq,

File "C:\Python27\lib\site-packages\django\db\models\sql\query.py" in build_filter
  1210.             condition = self.build_lookup(lookups, col, value)

File "C:\Python27\lib\site-packages\django\db\models\sql\query.py" in build_lookup
  1104.                 return final_lookup(lhs, rhs)

File "C:\Python27\lib\site-packages\django\db\models\lookups.py" in __init__
  24.         self.rhs = self.get_prep_lookup()

File "C:\Python27\lib\site-packages\django\db\models\lookups.py" in get_prep_lookup
  74.             return self.lhs.output_field.get_prep_value(self.rhs)

File "C:\Python27\lib\site-packages\django\db\models\fields\__init__.py" in get_prep_value
  966.         return int(value)

Exception Type: TypeError at /home/
Exception Value: int() argument must be a string or a number, not 'builtin_function_or_method'

错误2.0

Request Method: GET
Request URL: http://127.0.0.1:8000/home/

Traceback:

File "C:\Python27\lib\site-packages\django\core\handlers\exception.py" in inner
  41.             response = get_response(request)

File "C:\Python27\lib\site-packages\django\core\handlers\base.py" in _get_response
  187.                 response = self.process_exception_by_middleware(e, request)

File "C:\Python27\lib\site-packages\django\core\handlers\base.py" in _get_response
  185.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)

Exception Type: TypeError at /home/
Exception Value: home() takes exactly 2 arguments (1 given)

已更新

url(r'^(?i)request/(?P<emp_id>\d+)$', views.request_leave,
        name='Leave-Page'),


<a href="{% url "Leave-Page" request.user.id %}"><span class="glyphicon glyphicon-pencil text-primary"></span> Request Leave</>




def request_leave(request, emp_id):  # Requesting leave
    employee = Employee.objects.get(employee_name=emp_id)
    if employee.allowed == True:
        form = Leave_Form(request.POST)
        if form.is_valid():
            abc = form.save(commit=False)
            abc.employee_leaves = request.user.employee
            abc.save()
        form = Leave_Form
        context = {'employee': employee, 'form': form}
        # context = {'form': form}
        return render(request, 'projectfiles/reqleave.html', context)
    else:
        return render(request, "projectfiles/banned.html")


using context_processor was passing the id to the entire view, I just needed to use it for request and by comparing the user id with the employee name worked for me.

url(r'^(?i)request/(?P\d+)$),views.request\u leave,
name='Leave-Page'),
请假
def请假(请假,emp id):#请假
employee=employee.objects.get(employee\u name=emp\u id)
如果employee.allowed==True:
表格=请假表格(请寄)
如果form.is_有效():
abc=form.save(commit=False)
return {'emp_base_context': emp_base_context}
return {'emp_base_context': emp_data}
from .models import Employee, Leave

def emp_base_context(request):
    emp_data = Employee.objects.get(id=id)
    return {
        'emp_base_context': emp_data}

def lev_base_context(request):
    lev_data = Leave.objects.get(id=id)
    return {
        'lev_base_context': lev_data}
def emp_base_context(request):
    emp_data = Employee.objects.get(id=id)
    return {
        'emp_base_context': emp_data}
>>> Test.objects.get(id=id)
Traceback (most recent call last):
TypeError: int() argument must be a string, a bytes-like object or a number, not 'builtin_function_or_method'
>>> id
<built-in function id>
def emp_base_context(request):
    emp_data = Employee.objects.get(id=request.user.id)

    return {
        'emp_base_context': emp_base_context}