Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.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
Django 表单视图在[{';True';:True,';False';:False,';None';:None},{},{},catego';:<;catego:Salade>;]中查找键[Form]失败_Django - Fatal编程技术网

Django 表单视图在[{';True';:True,';False';:False,';None';:None},{},{},catego';:<;catego:Salade>;]中查找键[Form]失败

Django 表单视图在[{';True';:True,';False';:False,';None';:None},{},{},catego';:<;catego:Salade>;]中查找键[Form]失败,django,Django,我有一张关于帖子分类的表格。我想用户发布一些图片。当我尝试加载页面时,出现了一些错误。你知道吗 我从Django开始 我使用crispy表单,在我的模板中,我只是使用这个{%crispy表单%}加载标记 class CreatePictureForm(forms.ModelForm): def __init__(self,*args,**kwargs): super(CreatePictureForm, self).__init__(*args,**kwargs)

我有一张关于帖子分类的表格。我想用户发布一些图片。当我尝试加载页面时,出现了一些错误。你知道吗

我从Django开始

我使用crispy表单,在我的模板中,我只是使用这个{%crispy表单%}加载标记

class CreatePictureForm(forms.ModelForm):
    def __init__(self,*args,**kwargs):
        super(CreatePictureForm, self).__init__(*args,**kwargs)
        self.helper = FormHelper()
        self.helper.form_method="post"
        self.helper.layout = Layout(
            Field("image",css_class="form-control",style="margin-bottom:10px"),
            Field("pictureoption",css_class="form-control",style="margin-bottom:10px"),
            
        )
        
        self.helper.add_input(Submit('submit','Upload a pic',css_class="single-input textinput textInput form-control"))

    class Meta:
        model = Picture
        fields = [
            'image',
            'pictureoption',
        ]
以下是我的看法:

@login_required(login_url='/cooker/login')        
def catego(request, slug):
    catego = Catego.objects.get(slug=slug)
    
    context = {
        'catego': catego
    }  
    
    # if this is a POST request we need to process the form data
    if request.method == 'POST':
        # create a form instance and populate it with data from the request:
        form = CreatePictureForm(request.POST)
        # check whether it's valid:
        if form.is_valid():
            form.instance.catego = self.object
            form.instance.user = self.request.user
            form.save()
            return HttpResponseRedirect('/thanks/')
            
    else:
        form = CreatePictureForm()

    return render(request, 'post_catego.html', context, {'form': form})    
    
    @property
    def total_categories(self):
        return self.categories.count()
这是我的追踪:

环境:

请求方法:获取 请求URL:

Django版本:3.0.8 Python版本:3.7.8

Installed Applications:
['django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'nutriscore',
 'user',
 'crispy_forms',
 'help',
 'message',
 'geoip2',
 'django_user_agents',
 'supermarket',
 'channel']
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',
 'user.middleware.ActiveUserMiddleware',
 'django_user_agents.middleware.UserAgentMiddleware']

    
    Template error:
    In template /home/dulo0814/monProjetDjango/nutriscore/templates/base.html, error at line 24
       Failed lookup for key [%s] in %r
       14 :         </title>
       15 :         <meta name="description" content="" />
       16 :         <meta name="viewport" content="width=device-width, initial-scale=1" />
       17 : 
       18 :         {# Global stylesheets #}
       19 :         {% load static %}
       20 :         <link rel="stylesheet" type="text/css" href="{% static 'nutriscore/monsite.css' %}">
       21 :         <!--<link rel="stylesheet" type="text/css" href="{% static 'nutriscore/style.scss' %}">-->
       22 :         <link rel="stylesheet" type="text/css" href="{% static 'nutriscore/bootstrap.min.css' %}">
       23 :         <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
       24 :         <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9I OYy5n3zV9zzTtmI3U ksdQRVvoxMfooAo" crossorigin="anonymous"></script>
       25 :         <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js" integrity="sha384-OgVRvuATP1z7JjHLkuOU7Xw704+h835Lr+6QL9UvYjZE3Ipu6Tp75j7Bh/kR0JKI" crossorigin="anonymous"></script>
       26 :         <!--<script src="{% static 'nutriscore/chart.js' %}"></script>-->
       27 :         {% block extra_css %}
       28 :         
       29 :         {% endblock %}
       30 :         
       31 :         
       32 :     </head>
       33 :  
       34 :     <body class="{% block body_class %}{% endblock %}" style="margin: 0px;">
    
    
    Traceback (most recent call last):
      File "/home/dulo0814/virtualenv/monProjetDjango/3.7/lib/python3.7/site-packages/django/template/base.py", line 828, in _resolve_lookup
        current = current[bit]
      File "/home/dulo0814/virtualenv/monProjetDjango/3.7/lib/python3.7/site-packages/django/template/context.py", line 83, in __getitem__
        raise KeyError(key)
    
    During handling of the above exception ('form'), another exception occurred:
      File "/home/dulo0814/virtualenv/monProjetDjango/3.7/lib/python3.7/site-packages/django/template/base.py", line 834, in _resolve_lookup
        if isinstance(current, BaseContext) and getattr(type(current), bit):
    
    During handling of the above exception (type object 'RequestContext' has no attribute 'form'), another exception occurred:
      File "/home/dulo0814/virtualenv/monProjetDjango/3.7/lib/python3.7/site-packages/django/template/base.py", line 842, in _resolve_lookup
        current = current[int(bit)]
    
    During handling of the above exception (invalid literal for int() with base 10: 'form'), another exception occurred:
      File "/home/dulo0814/virtualenv/monProjetDjango/3.7/lib/python3.7/site-packages/django/core/handlers/exception.py", line 34, in inner
        response = get_response(request)
      File "/home/dulo0814/virtualenv/monProjetDjango/3.7/lib/python3.7/site-packages/django/core/handlers/base.py", line 115, in _get_response
        response = self.process_exception_by_middleware(e, request)
      File "/home/dulo0814/virtualenv/monProjetDjango/3.7/lib/python3.7/site-packages/django/core/handlers/base.py", line 113, in _get_response
        response = wrapped_callback(request, *callback_args, **callback_kwargs)
      File "/home/dulo0814/virtualenv/monProjetDjango/3.7/lib/python3.7/site-packages/django/contrib/auth/decorators.py", line 21, in _wrapped_view
        return view_func(request, *args, **kwargs)
      File "/home/dulo0814/monProjetDjango/nutriscore/views.py", line 66, in catego
        return render(request, 'post_catego.html', context, {'form': form})
      File "/home/dulo0814/virtualenv/monProjetDjango/3.7/lib/python3.7/site-packages/django/shortcuts.py", line 19, in render
        content = loader.render_to_string(template_name, context, request, using=using)
      File "/home/dulo0814/virtualenv/monProjetDjango/3.7/lib/python3.7/site-packages/django/template/loader.py", line 62, in render_to_string
        return template.render(context, request)
      File "/home/dulo0814/virtualenv/monProjetDjango/3.7/lib/python3.7/site-packages/django/template/backends/django.py", line 61, in render
        return self.template.render(context)
      File "/home/dulo0814/virtualenv/monProjetDjango/3.7/lib/python3.7/site-packages/django/template/base.py", line 171, in render
        return self._render(context)
      File "/home/dulo0814/virtualenv/monProjetDjango/3.7/lib/python3.7/site-packages/django/template/base.py", line 163, in _render
        return self.nodelist.render(context)
      File "/home/dulo0814/virtualenv/monProjetDjango/3.7/lib/python3.7/site-packages/django/template/base.py", line 936, in render
        bit = node.render_annotated(context)
      File "/home/dulo0814/virtualenv/monProjetDjango/3.7/lib/python3.7/site-packages/django/template/base.py", line 903, in render_annotated
        return self.render(context)
      File "/home/dulo0814/virtualenv/monProjetDjango/3.7/lib/python3.7/site-packages/django/template/loader_tags.py", line 150, in render
        return compiled_parent._render(context)
      File "/home/dulo0814/virtualenv/monProjetDjango/3.7/lib/python3.7/site-packages/django/template/base.py", line 163, in _render
        return self.nodelist.render(context)
      File "/home/dulo0814/virtualenv/monProjetDjango/3.7/lib/python3.7/site-packages/django/template/base.py", line 936, in render
        bit = node.render_annotated(context)
      File "/home/dulo0814/virtualenv/monProjetDjango/3.7/lib/python3.7/site-packages/django/template/base.py", line 903, in render_annotated
        return self.render(context)
      File "/home/dulo0814/virtualenv/monProjetDjango/3.7/lib/python3.7/site-packages/django/template/loader_tags.py", line 62, in render
        result = block.nodelist.render(context)
      File "/home/dulo0814/virtualenv/monProjetDjango/3.7/lib/python3.7/site-packages/django/template/base.py", line 936, in render
        bit = node.render_annotated(context)
      File "/home/dulo0814/virtualenv/monProjetDjango/3.7/lib/python3.7/site-packages/django/template/base.py", line 903, in render_annotated
        return self.render(context)
      File "/home/dulo0814/virtualenv/monProjetDjango/3.7/lib/python3.7/site-packages/crispy_forms/templatetags/crispy_forms_tags.py", line 203, in render
        c = self.get_render(context).flatten()
      File "/home/dulo0814/virtualenv/monProjetDjango/3.7/lib/python3.7/site-packages/crispy_forms/templatetags/crispy_forms_tags.py", line 91, in get_render
        actual_form = form.resolve(context)
      File "/home/dulo0814/virtualenv/monProjetDjango/3.7/lib/python3.7/site-packages/django/template/base.py", line 795, in resolve
        value = self._resolve_lookup(context)
      File "/home/dulo0814/virtualenv/monProjetDjango/3.7/lib/python3.7/site-packages/django/template/base.py", line 849, in _resolve_lookup
        (bit, current))  # missing attribute
    
    Exception Type: VariableDoesNotExist at /dish/salade-cesar/
    Exception Value: Failed lookup for key [form] in [{'True': True, 'False': False, 'None': None}, {}, {}, {'catego': <Catego: Salade césar>}]
已安装的应用程序:
['django.contrib.admin',
“django.contrib.auth”,
“django.contrib.contenttypes”,
“django.contrib.sessions”,
“django.contrib.messages”,
“django.contrib.staticfiles”,
“nutriscore”,
“用户”,
“脆皮形式”,
“救命”,
"讯息",,
"geoip2",,
“django_用户_代理”,
“超市”,
“频道”]
已安装的中间件:
['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.xFrameOptions中间件',
'user.middleware.ActiveUserMiddleware',
'django_user_agents.middleware.UserAgentMiddleware']
模板错误:
在template/home/dulo0814/monProjetDjango/nutriscore/templates/base.html中,第24行出现错误
在%r中查找密钥[%s]失败
14 :         
15 :         
16 :         
17 : 
18:{#全局样式表}
19:{%load static%}
20 :         
21 :         
22 :         
23 :         
24 :         
25 :         
26 :         
27:{%block-extra_-css%}
28 :         
29:{%endblock%}
30 :         
31 :         
32 :     
33 :  
34 :     
回溯(最近一次呼叫最后一次):
文件“/home/dulo0814/virtualenv/monProjetDjango/3.7/lib/python3.7/site packages/django/template/base.py”,第828行,在“解析”查找中
电流=电流[位]
文件“/home/dulo0814/virtualenv/monProjetDjango/3.7/lib/python3.7/site packages/django/template/context.py”,第83行,在__
升起钥匙错误(钥匙)
在处理上述异常(“表单”)期间,发生了另一个异常:
文件“/home/dulo0814/virtualenv/monProjetDjango/3.7/lib/python3.7/site packages/django/template/base.py”,第834行,在“解析”查找中
如果isinstance(当前,BaseContext)和getattr(类型(当前),位):
在处理上述异常期间(类型对象“RequestContext”没有属性“form”),发生了另一个异常:
文件“/home/dulo0814/virtualenv/monProjetDjango/3.7/lib/python3.7/site packages/django/template/base.py”,第842行,在“解析”查找中
当前=当前[int(位)]
在处理上述异常期间(以10为基数的int()的文本无效:“form”),发生了另一个异常:
文件“/home/dulo0814/virtualenv/monProjetDjango/3.7/lib/python3.7/site packages/django/core/handlers/exception.py”,第34行,内部
响应=获取响应(请求)
文件“/home/dulo0814/virtualenv/monProjetDjango/3.7/lib/python3.7/site packages/django/core/handlers/base.py”,第115行,在“获取”响应中
response=self.process\u异常\u由\u中间件(e,请求)
文件“/home/dulo0814/virtualenv/monProjetDjango/3.7/lib/python3.7/site packages/django/core/handlers/base.py”,第113行,在“获取”响应中
响应=包装的回调(请求,*回调参数,**回调参数)
文件“/home/dulo0814/virtualenv/monProjetDjango/3.7/lib/python3.7/site packages/django/contrib/auth/decorators.py”,第21行,在“包装”视图中
返回视图功能(请求,*args,**kwargs)
文件“/home/dulo0814/monProjetDjango/nutriscore/views.py”,第66行,在catego中
返回呈现(请求'post_catego.html',上下文,{'form':form})
文件“/home/dulo0814/virtualenv/monProjetDjango/3.7/lib/python3.7/site packages/django/shortcuts.py”,第19行,呈现
content=loader.render_to_string(模板名称、上下文、请求、using=using)
文件“/home/dulo0814/virtualenv/monProjetDjango/3.7/lib/python3.7/site packages/django/template/loader.py”,第62行,呈现到字符串中
返回template.render(上下文、请求)
文件“/home/dulo0814/virtualenv/monProjetDjango/3.7/lib/python3.7/site packages/django/template/backends/django.py”,第61行,呈现
返回self.template.render(上下文)
文件“/home/dulo0814/virtualenv/monProjetDjango/3.7/lib/python3.7/site packages/django/template/base.py”,第171行,呈现
返回self.\u呈现(上下文)
文件“/home/dulo0814/virtualenv/monProjetDjango/3.7/lib/python3.7/site packages/django/template/base.py”,第163行,在渲染中
返回self.nodelist.render(上下文)
文件“/home/dulo0814/virtualenv/monProjetDjango/3.7/lib/python3.7/site packages/django/template/base.py”,第936行,呈现
位=节点。带注释的渲染(上下文)
文件“/home/dulo0814/virtualenv/monProjetDjango/3.7/lib/python3.7/site packages/django/template/base.py”,第903行,带注释的渲染
返回self.render(上下文)
文件“/home/dulo0814/virtualenv/monProjetDjango/3.7/lib/python3.7/site packages/django/template/loader_tags.py”,第150行,呈现
返回编译的\u父对象。\u呈现(上下文)
文件“/home/dulo0814/virtualenv/monProjetDjango/3.7/lib/python3.7/site packages/django/template/base.py”,第163行,在渲染中
返回self.nodelist.render(上下文)
文件“/home/dulo0814/virtualenv/monProjetDjango/3.7/lib/python3.7/site packages/django/template/base.py”,第936行,呈现
位=n
@login_required(login_url='/cooker/login')
def catego(request, slug):
    catego = Catego.objects.get(slug=slug)

    context = {
        'catego': catego
    }

    # if this is a POST request we need to process the form data
    if request.method == 'POST':
        # create a form instance and populate it with data from the request:
        form = CreatePictureForm(request.POST)
        # check whether it's valid:
        if form.is_valid():
            form.instance.catego = self.object
            form.instance.user = self.request.user
            form.save()
            return HttpResponseRedirect('/thanks/')

    else:
        form = CreatePictureForm()

    context['form'] = form # add `form` to the context
    return render(request, 'post_catego.html', context)