gpt4 book ai didi

python - Django : 'unicode' object has no attribute 'get'

转载 作者:行者123 更新时间:2023-11-30 22:34:07 27 4
gpt4 key购买 nike

我的 Django 程序有问题。我是 Django 的初学者,我一直在寻找具有与我的错误相同的错误的不同帖子的答案,但没有成功......

Here's my traceback :

Environment:


Request Method: POST
Request URL: http://127.0.0.1:8000/pod

Django Version: 1.11.2
Python Version: 2.7.13
Installed Applications:
['django.contrib.admin',
'django.contrib.auth',
'labinit',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles']
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\admin\Desktop\django_learneo3\Learneo\labinit\views.py" in groupe_pod
121. if form.is_valid():

File "C:\Python27\lib\site-packages\django\forms\forms.py" in is_valid
183. return self.is_bound and not self.errors

File "C:\Python27\lib\site-packages\django\forms\forms.py" in errors
175. self.full_clean()

File "C:\Python27\lib\site-packages\django\forms\forms.py" in full_clean
384. self._clean_fields()

File "C:\Python27\lib\site-packages\django\forms\forms.py" in _clean_fields
396. value = field.widget.value_from_datadict(self.data, self.files, self.add_prefix(name))

File "C:\Python27\lib\site-packages\django\forms\widgets.py" in

value_from_datadict
639. getter = data.get

Exception Type: AttributeError at /pod
Exception Value: 'unicode' object has no attribute 'get'

由于我更改了我的 init 功能(针对我在 View 中使用的表单),因此出现此问题:

表格:

class Groupe_Form(forms.ModelForm) :    
def __init__(self, nom_groupe, *args, **kwargs):
super(Groupe_Form,self).__init__(*args, **kwargs)
self.fields['pod'].widget = forms.Select()
pod1 = Groupe.objects.filter(nom_groupe = nom_groupe).values_list('pod', flat = True)
pods = list(pod1)
self.fields['pod'].queryset = Pod.objects.filter(id__in=pods)
class Meta:
model = Groupe
fields = ['pod']

浏览量:

def groupe_pod(request):

global new_groupe
grp = new_groupe
form = forms.Groupe_Form(request.POST, grp)
if request.method == 'POST':
if form.is_valid():
print "form was valid"
data_groupe_pod = request.POST.get('grp_pod')
print "data_groupe :", data_groupe_pod

global new_cours
print new_cours

if new_cours == "ICND1":
return redirect('http://127.0.0.1:8000/icnd_1')
elif new_cours == "ICND2":
return redirect('http://127.0.0.1:8000/icnd_2')
else :
form = forms.Groupe_Form(new_groupe)
return render(request, 'pod.html', locals())

我已经尝试了很多方法,我真的不知道我的 Django 代码中的问题出在哪里。

最佳答案

您的表单的 __init__ 方法是:

def __init__(self, nom_groupe, *args, **kwargs):

因此你应该实例化它:

form = forms.Groupe_Form(grp, request.POST)

您目前的观点正好相反。

关于python - Django : 'unicode' object has no attribute 'get' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44945051/

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