gpt4 book ai didi

python - WSGIRequest 对象没有属性 get

转载 作者:太空宇宙 更新时间:2023-11-04 08:54:20 27 4
gpt4 key购买 nike

有人知道怎么回事吗?我有一个 wsgi 错误。我想添加一些信息来评分,特别是日期。但是,我收到此 wsgi 错误:

错误:

    AttributeError at /polisy/add_paydate_form/35/
'WSGIRequest' object has no attribute 'get'
Request Method: GET
Request URL: http://127.0.0.1:8000/polisy/add_paydate_form/35/
Django Version: 1.7.7
Exception Type: AttributeError
Exception Value:
'WSGIRequest' object has no attribute 'get'
Exception Location: D:\praca\tiecase\lib\site-packages\django\forms\widgets.py in value_from_datadict, line 228
Python Executable: D:\praca\tiecase\Scripts\python.exe
Python Version: 3.4.0
Python Path:
['D:\\praca\\tiecase\\tiecase\\tlb',
'D:\\praca\\tiecase\\tiecase\\tlb',
'C:\\WINDOWS\\SYSTEM32\\python34.zip',
'D:\\praca\\tiecase\\DLLs',
'D:\\praca\\tiecase\\lib',
'D:\\praca\\tiecase\\Scripts',
'C:\\Python34\\Lib',
'C:\\Python34\\DLLs',
'D:\\praca\\tiecase',
'D:\\praca\\tiecase\\lib\\site-packages']
Server time: Tue, 28 Jul 2015 14:36:43 +0200
Error during template rendering

In template D:\praca\tiecase\lib\site-packages\crispy_forms\templates\bootstrap3\field.html, error at line 25
'WSGIRequest' object has no attribute 'get'
15
16 {% if field|is_checkboxselectmultiple %}
17 {% include 'bootstrap3/layout/checkboxselectmultiple.html' %}
18 {% endif %}
19
20 {% if field|is_radioselect %}
21 {% include 'bootstrap3/layout/radioselect.html' %}
22 {% endif %}
23
24 {% if not field|is_checkboxselectmultiple and not field|is_radioselect %}
25 {% if field|is_checkbox and form_show_labels %}
26 {% if label_class %}
27 <div class="controls col-lg-offset-{{ label_size }} {{ field_class }}">
28 {% endif %}
29 <label for="{{ field.id_for_label }}" class="{% if field.field.required %} requiredField{% endif %}">
30 {% crispy_field field 'class' 'checkbox' %}
31 {{ field.label|safe }}
32 {% include 'bootstrap3/layout/help_text_and_errors.html' %}
33 </label>
34 {% if label_class %}
35 </div>

pay_date_form.py的内容:

import datetime
from crispy_forms.helper import FormHelper
from crispy_forms.layout import Layout, Div, Column, HTML, Submit, Field
from django.forms import ModelForm
from django import forms
from primer8_base.utils import get_or_none
from primer8_insurance_policy.models import PaymentRate
from tiecase.widgets import DateTimeWidget


class PayDateForm(ModelForm):

payment_date=forms.DateField(required=False,
input_formats=['%d-%m-%Y'],
widget=DateTimeWidget
)

def __init__(self, *args, **kwargs):
super(PayDateForm, self).__init__(*args, **kwargs)

self.helper = FormHelper(self)
self.helper.form_id="add_pay_date_form"
self.helper.form_class = 'form-horizontal'
self.helper.all().wrap(Field, css_class="input-block-level")
self.helper.layout = Layout(
Div(
Column(
HTML("<h3>Wprowadź datę opłacenia/h3>"),
css_class='col-md-10 col-md-offset-1'),
'payment_date'
))

self.helper.layout.append(
Submit('save', 'Dodaj', css_class='submit_ajax'))

class Meta:
model = PaymentRate
exclude = ['amount', 'due_payment_date', 'accounting_date','is_paid','num_of_payment']

这是一个 View :

@login_required
def add_pay_date_form(request, paymentrate_id):
template_name = "policy/pay_date_modal_form.html"

rate = get_object_or_404(PaymentRate, id=paymentrate_id)

form = PayDateForm(request, PaymentRate)

if request.method == "POST":
if form.is_valid():
form.save()
return JsonResponse({'success': True})

return render_to_response(template_name, {
'form': form,
'rate': rate
}, context_instance=RequestContext(request))

模板:

  {% extends "base_form.html" %}

{% block "additional" %}
<script type="text/javascript">
$(document).ready(function(){
$("#{{form.name.auto_id}}").blur(function(){
if(!$('#{{form.short_name.auto_id}}').val()) {
$('#{{form.short_name.auto_id}}').val($("#{{form.name.auto_id}}").val());
}
});
});

$("#add_pay_date_form").submit(function (e) {
e.preventDefault();
var formData = new FormData($(this)[0]);
$.ajax({
type: 'POST',
async: false,
cache: false,
contentType: false,
processData: false,
url: '{% url "add_pay_date_form" paymentrate.id %}',
data: formData,
success: function (response, status, xhr) {
if (xhr.getResponseHeader('Content-Type') == 'application/json')
{ console.log(xhr.getResponseHeader('Content-Type'));
$.magnificPopup.close();
} else {
$('#{{ form.helper.form_id }}_panel').replaceWith(response);
}
}
});

console.log('test');
});
</script>

{% endblock "additional" %}

和网址:

    url(r'add_paydate_form/(?P<paymentrate_id>\d+)/$', add_pay_date_form, name='add_pay_date_form'),

我有这个错误,我不知道为什么。也许扩展基本形式有问题?

最佳答案

这是错误的:

form = PayDateForm(request, PaymentRate)

您没有将request 对象传递给表单,您传递的是提交的表单数据,即

form = PayDateForm(request.POST, PaymentRate)

(解释一下:你得到的错误是因为 Django 期待一个类似 dict 的对象,所以它试图调用它的 get 方法来获取特定的数据键,因此 'WSGIRequest' 对象没有属性 'get')

所以你的 View 应该是这样的:

@login_required
def add_pay_date_form(request, paymentrate_id):
template_name = "policy/pay_date_modal_form.html"

rate = get_object_or_404(PaymentRate, id=paymentrate_id)

form = PayDateForm(request.POST or None, PaymentRate)

if form.is_valid():
form.save()
return JsonResponse({'success': True})

return render_to_response(template_name, {
'form': form,
'rate': rate
}, context_instance=RequestContext(request))

关于python - WSGIRequest 对象没有属性 get,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31676861/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com