簡體   English   中英

重命名csrfmiddlewaretoken

[英]Rename csrfmiddlewaretoken

我使用Django並在html中

<input type="hidden" name="csrfmiddlewaretoken" value="...">

如何重命名csrfmiddlewaretoken 我不想,用戶可以知道,該網站使用Django。

我在Django 設置中找不到任何內容,有沒有辦法做到這一點?

謝謝!

這是字符串在django / middleware / csrf.py中硬編碼:

        # Check non-cookie token for match.
        request_csrf_token = ""
        if request.method == "POST":
            request_csrf_token = request.POST.get('csrfmiddlewaretoken', '')

        if request_csrf_token == "":
            # Fall back to X-CSRFToken, to make things easier for AJAX,
            # and possible for PUT/DELETE.
            request_csrf_token = request.META.get('HTTP_X_CSRFTOKEN', '')

但是你有單向存在的方式。 您可以添加on js-function,它將HTTP_X_CSRFTOKEN添加到您的POST請求中。

在文檔中查找更多詳細信息。

字段“id”需要一個數字但得到了<querydict: {'csrfmiddlewaretoken':< div><div id="text_translate"><p> 我有這個錯誤,我無法解決問題</p><p><strong>查看.PY</strong></p><pre> def projects_add(request, client_id): if request.method == 'POST': form = ProjectForm(request.POST or None) if form.is_valid(): instance = form.save(commit=False) client = Clients.objects.get(pk=client_id) instance.client = client instance.created_date = datetime.date.today() instance.status = 'Análise' instance.save() messages.success(request,'Projeto adicionado') else: messages.error(request,'Ocorreu um erro:') return HttpResponseRedirect(reverse('projects')) else. form = ProjectForm(client_id) all_projects = Project.objects,all() return render(request.'projects,html':{'form',form: 'all_projects':all_projects})</pre><p> <strong>FORMS.PY</strong></p><pre> class ProjectForm(ModelForm): class Meta: model = Project fields = ['owner','farm','warranty','modal','culture','value','final_date'] def __init__(self, client_id, *args,**kwargs): super(ProjectForm, self).__init__(*args,**kwargs) self.fields['value'].required = False self.fields['final_date'].required = False self.fields['farm'].queryset = Farm.objects.filter(client=client_id) self.fields['warranty'].queryset = Farm.objects.filter(client=client_id) for field_name, field in self.fields.items(): field.widget.attrs['class'] = 'form-control'</pre><p> <strong>模型.PY</strong></p><pre> class Project(models.Model): modal_types = [('CUSTEIO AGRÍCOLA','Custeio Agrícola'),('CUSTEIO PECUÁRIO','Custeio Pecuário'),('INVESTIMENTO AGRÍCOLA','Investimento Agrícola'),('INVESTIMENTO PECUÁRIO','Investimento Pecuário'),('FGPP','FGPP')] farm = models.ManyToManyField(Farm, related_name='project_farm',verbose_name='Propriedade beneficiada') client = models.ForeignKey(Clients, on_delete=models.CASCADE, related_name='project_client',default=None,null=True, verbose_name='Cliente') owner = models.ForeignKey(Owner, on_delete=models.CASCADE, related_name='project_bidder',default=None,null=True, verbose_name='Proponente') warranty = models.ManyToManyField(Farm, related_name='project_warranty',default=None, verbose_name='Propriedade de garantia') modal = models.CharField(max_length=100,default=None,choices=modal_types, null=True, verbose_name='Tipo') culture = models.CharField(max_length=50,null=True, verbose_name='Cultura') status = models.CharField(max_length=50,null=True, verbose_name='Status') created_date = models.DateField(null=True, verbose_name='Data de criação') value = models.FloatField(max_length=10,null=True, verbose_name='Valor financiado') final_date = models.DateField(default=None,null=True, verbose_name='Fim do contrato')</pre><p> <strong>追溯</strong></p><p>上述異常是以下異常的直接原因:</p><p> 回溯(最近調用最后):文件“C:\Users\luizh\anaconda3\envs\env\lib\site-packages\django\core\handlers\exception.py”,第 47 行,在內部響應 = get_response(request ) 文件“C:\Users\luizh\anaconda3\envs\env\lib\site-packages\django\core\handlers\base.py”,第 181 行,在 _get_response response = wrapped_callback(request, *callback_args, **callback_kwargs ) 文件“C:\Users\luizh\Desktop\Novo Sistema\ATR\projects\views.py”,第 30 行,projects_add 形式 = ProjectForm(request.POST 或無)文件“C:\Users\luizh\Desktop\ Novo Sistema\ATR\projects\forms.py",第 16 行,在<strong>init</strong> self.fields['farm'].queryset = Farm.objects.filter(client=client_id) File "C:\Users\luizh\anaconda3\envs \env\lib\site-packages\django\db\models\manager.py",第 85 行,在 manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) File "C:\Users \luizh\anaconda3\envs\env\lib\site-packages\django\db\models\query.py”,第 974 行,在過濾器返回 self._filter_or_exclude(False, args, kwargs) 文件“C:\Users\l uizh\anaconda3\envs\env\lib\site-packages\django\db\models\query.py”,第 992 行,在 _filter_or_exclude clone._filter_or_exclude_inplace(negate, args, kwargs) 文件“C:\Users\luizh\anaconda3 \envs\env\lib\site-packages\django\db\models\query.py”,第 999 行,在 _filter_or_exclude_inplace self._query.add_q(Q(*args, **kwargs)) 文件“C:\Users\ luizh\anaconda3\envs\env\lib\site-packages\django\db\models\sql\query.py”,第 1375 行,在 add_q 子句中,_ = self._add_q(q_object, self.used_aliases) File “C: \Users\luizh\anaconda3\envs\env\lib\site-packages\django\db\models\sql\query.py", line 1396, in <em>add_q child_clause, needed_inner = self.build_filter( File "C:\Users\ luizh\anaconda3\envs\env\lib\site-packages\django\db\models\sql\query.py”,第 1329 行,在 build_filter condition = self.build_lookup(lookups, col, value) File “C:\Users \luizh\anaconda3\envs\env\lib\site-packages\django\db\models\sql\query.py”,第 1180 行,在 build_lookup lookup = lookup_class(lhs, rhs) 文件“C:\Users\luizh\ anaconda3\envs\env\l</em> <em>ib\site-packages\django\db\models\lookups.py", line 22, in <strong>init</strong> self.rhs = self.get_prep_lookup() File "C:\Users\luizh\anaconda3\envs\env\lib\site- packages\django\db\models\fields\related_lookups.py”,第 120 行,在 get_prep_lookup self.rhs = target_field.get_prep_value(self.rhs) 文件“C:\Users\luizh\anaconda3\envs\env\lib\site -packages\django\db\models\ <em>fields_init.py</em></em> ”,第 1824 行,在 get_prep_value raise e. <strong>class</strong> (TypeError: Field 'id' expected a number 但得到了 <QueryDict: {'csrfmiddlewaretoken': ['ha7mOkHl8SkjuKDx06TipoflYdFFEdZFxT3ST5DdVZYRSGkHSffTOTGWdDXWaWf1'], 'owner': ['1'], 'farm': ['4'], 'warranty : ['4'], 'modal': ['CUSTEIO AGRÍCOLA'], 'culture': ['toamte'], 'value': [''], 'final_date': ['']}>. [23 /Feb/2022 11:20:44] “POST /projetos/1 HTTP/1.1” 500 135681</p><p> 我認為問題的發生是因為我用來定義查詢集的方式,但我已經嘗試了一切但它不起作用。</p></div></querydict:>

[英]Field 'id' expected a number but got <QueryDict: {'csrfmiddlewaretoken':

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

相關問題 發布-django時過濾csrfmiddlewaretoken Django:對於基數為 10 的 int() 無效文字:&#39;csrfmiddlewaretoken&#39; 字段“id”需要一個數字但得到了<querydict: {'csrfmiddlewaretoken':< div><div id="text_translate"><p> 我有這個錯誤,我無法解決問題</p><p><strong>查看.PY</strong></p><pre> def projects_add(request, client_id): if request.method == 'POST': form = ProjectForm(request.POST or None) if form.is_valid(): instance = form.save(commit=False) client = Clients.objects.get(pk=client_id) instance.client = client instance.created_date = datetime.date.today() instance.status = 'Análise' instance.save() messages.success(request,'Projeto adicionado') else: messages.error(request,'Ocorreu um erro:') return HttpResponseRedirect(reverse('projects')) else. form = ProjectForm(client_id) all_projects = Project.objects,all() return render(request.'projects,html':{'form',form: 'all_projects':all_projects})</pre><p> <strong>FORMS.PY</strong></p><pre> class ProjectForm(ModelForm): class Meta: model = Project fields = ['owner','farm','warranty','modal','culture','value','final_date'] def __init__(self, client_id, *args,**kwargs): super(ProjectForm, self).__init__(*args,**kwargs) self.fields['value'].required = False self.fields['final_date'].required = False self.fields['farm'].queryset = Farm.objects.filter(client=client_id) self.fields['warranty'].queryset = Farm.objects.filter(client=client_id) for field_name, field in self.fields.items(): field.widget.attrs['class'] = 'form-control'</pre><p> <strong>模型.PY</strong></p><pre> class Project(models.Model): modal_types = [('CUSTEIO AGRÍCOLA','Custeio Agrícola'),('CUSTEIO PECUÁRIO','Custeio Pecuário'),('INVESTIMENTO AGRÍCOLA','Investimento Agrícola'),('INVESTIMENTO PECUÁRIO','Investimento Pecuário'),('FGPP','FGPP')] farm = models.ManyToManyField(Farm, related_name='project_farm',verbose_name='Propriedade beneficiada') client = models.ForeignKey(Clients, on_delete=models.CASCADE, related_name='project_client',default=None,null=True, verbose_name='Cliente') owner = models.ForeignKey(Owner, on_delete=models.CASCADE, related_name='project_bidder',default=None,null=True, verbose_name='Proponente') warranty = models.ManyToManyField(Farm, related_name='project_warranty',default=None, verbose_name='Propriedade de garantia') modal = models.CharField(max_length=100,default=None,choices=modal_types, null=True, verbose_name='Tipo') culture = models.CharField(max_length=50,null=True, verbose_name='Cultura') status = models.CharField(max_length=50,null=True, verbose_name='Status') created_date = models.DateField(null=True, verbose_name='Data de criação') value = models.FloatField(max_length=10,null=True, verbose_name='Valor financiado') final_date = models.DateField(default=None,null=True, verbose_name='Fim do contrato')</pre><p> <strong>追溯</strong></p><p>上述異常是以下異常的直接原因:</p><p> 回溯(最近調用最后):文件“C:\Users\luizh\anaconda3\envs\env\lib\site-packages\django\core\handlers\exception.py”,第 47 行,在內部響應 = get_response(request ) 文件“C:\Users\luizh\anaconda3\envs\env\lib\site-packages\django\core\handlers\base.py”,第 181 行,在 _get_response response = wrapped_callback(request, *callback_args, **callback_kwargs ) 文件“C:\Users\luizh\Desktop\Novo Sistema\ATR\projects\views.py”,第 30 行,projects_add 形式 = ProjectForm(request.POST 或無)文件“C:\Users\luizh\Desktop\ Novo Sistema\ATR\projects\forms.py",第 16 行,在<strong>init</strong> self.fields['farm'].queryset = Farm.objects.filter(client=client_id) File "C:\Users\luizh\anaconda3\envs \env\lib\site-packages\django\db\models\manager.py",第 85 行,在 manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) File "C:\Users \luizh\anaconda3\envs\env\lib\site-packages\django\db\models\query.py”,第 974 行,在過濾器返回 self._filter_or_exclude(False, args, kwargs) 文件“C:\Users\l uizh\anaconda3\envs\env\lib\site-packages\django\db\models\query.py”,第 992 行,在 _filter_or_exclude clone._filter_or_exclude_inplace(negate, args, kwargs) 文件“C:\Users\luizh\anaconda3 \envs\env\lib\site-packages\django\db\models\query.py”,第 999 行,在 _filter_or_exclude_inplace self._query.add_q(Q(*args, **kwargs)) 文件“C:\Users\ luizh\anaconda3\envs\env\lib\site-packages\django\db\models\sql\query.py”,第 1375 行,在 add_q 子句中,_ = self._add_q(q_object, self.used_aliases) File “C: \Users\luizh\anaconda3\envs\env\lib\site-packages\django\db\models\sql\query.py", line 1396, in <em>add_q child_clause, needed_inner = self.build_filter( File "C:\Users\ luizh\anaconda3\envs\env\lib\site-packages\django\db\models\sql\query.py”,第 1329 行,在 build_filter condition = self.build_lookup(lookups, col, value) File “C:\Users \luizh\anaconda3\envs\env\lib\site-packages\django\db\models\sql\query.py”,第 1180 行,在 build_lookup lookup = lookup_class(lhs, rhs) 文件“C:\Users\luizh\ anaconda3\envs\env\l</em> <em>ib\site-packages\django\db\models\lookups.py", line 22, in <strong>init</strong> self.rhs = self.get_prep_lookup() File "C:\Users\luizh\anaconda3\envs\env\lib\site- packages\django\db\models\fields\related_lookups.py”,第 120 行,在 get_prep_lookup self.rhs = target_field.get_prep_value(self.rhs) 文件“C:\Users\luizh\anaconda3\envs\env\lib\site -packages\django\db\models\ <em>fields_init.py</em></em> ”,第 1824 行,在 get_prep_value raise e. <strong>class</strong> (TypeError: Field 'id' expected a number 但得到了 <QueryDict: {'csrfmiddlewaretoken': ['ha7mOkHl8SkjuKDx06TipoflYdFFEdZFxT3ST5DdVZYRSGkHSffTOTGWdDXWaWf1'], 'owner': ['1'], 'farm': ['4'], 'warranty : ['4'], 'modal': ['CUSTEIO AGRÍCOLA'], 'culture': ['toamte'], 'value': [''], 'final_date': ['']}>. [23 /Feb/2022 11:20:44] “POST /projetos/1 HTTP/1.1” 500 135681</p><p> 我認為問題的發生是因為我用來定義查詢集的方式,但我已經嘗試了一切但它不起作用。</p></div></querydict:> 使用 python 登錄到帶有 csrfmiddlewaretoken 驗證的網站 模板中有 {% csrf_token %} 標簽,但沒有 csrfmiddlewaretoken 隱藏值 Django拋出“CSRF令牌丟失或不正確”錯誤(因為csrfmiddlewaretoken為空值) 解壓縮並重命名 重命名窗口 重命名字符串/在python中重命名文件 Jsonstat 數據集重命名
 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM