양식을 채울 때이 오류가 발생합니다. 여기 AttributeError : 'NoneType'객체에 'all'속성이 없습니다.
양식 자체이다 :class locationForm(forms.Form):
#this form is sent through to give options
existing_regions= forms.ModelChoiceField(queryset=None, label="Region Name")
#this form is what is actually is used to determine the associated region (via get_or_create)
#look at view for details
region_name = forms.CharField()
location_name = forms.CharField()
street_address = forms.CharField()
city = forms.CharField()
zip_code = forms.CharField()
그리고이 양식에 대한 get_or_create을하는 뷰 사용하고 있습니다 : 당신이 볼 수 있듯이
class AddLocation(View):
template_name = "dash/Addlocation.html"
form = locationForm()
def post(self, request, *args, **kwargs):
form = locationForm(request.POST)
user = User.objects.get(username=request.user.username)
form.fields['existing_regions'].queryset = Region.objects.filter(location__manager=user)
if form.is_valid():
region_obj, _created = Region.objects.get_or_create(name=form.cleaned_data['region_name'])
form.cleaned_data['region_name'] = region_obj
user = User.objects.get(username=request.user.username)
location = Location(
region = region_obj,
name = form.cleaned_data['location_name'],
street_address = form.cleaned_data['street_address'],
city = form.cleaned_data['city'],
zip_code = form.cleaned_data['zip_code']
)
location.save()
own_it = user.get_profile().owned_locations.add(location)
else:
form = locationForm(request.POST)
form.fields['region_name'].queryset = Region.objects.filter(location__manager=user)
return render(request, self.template_name, {'form': form})
의 'existing_regions'형태로 제공됩니다 그냥 옵션을 제공하기 위해 프런트 엔드에. 그러나 궁극적으로 프론트 엔드는 선택된 이름을 'region_name'으로 전달하고 Location으로 저장되는 객체를 빌드하는 데 사용됩니다. 이것이 최선의 방법인지 확실하지 않지만이 오류가 어떻게 발생했는지 알 수 없습니다. 필요한 경우 세부 정보를 제공 할 수 있습니다. 이 점을 밝힐 수있는 사람에게 미리 감사드립니다.
여기
Internal Server Error: /dash/location/add
Traceback (most recent call last):
File "/Library/Python/2.7/site-packages/django/core/handlers/base.py", line 114, in get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/Library/Python/2.7/site-packages/django/contrib/auth/decorators.py", line 22, in _wrapped_view
return view_func(request, *args, **kwargs)
File "/Library/Python/2.7/site-packages/django/views/generic/base.py", line 69, in view
return self.dispatch(request, *args, **kwargs)
File "/Library/Python/2.7/site-packages/django/views/generic/base.py", line 87, in dispatch
return handler(request, *args, **kwargs)
File "/Users/nir/dashboard/pinpoint/apps/locationmanager/views.py", line 64, in post
return render(request, self.template_name, {'form': form})
File "/Library/Python/2.7/site-packages/django/shortcuts/__init__.py", line 53, in render
return HttpResponse(loader.render_to_string(*args, **kwargs),
File "/Library/Python/2.7/site-packages/django/template/loader.py", line 169, in render_to_string
return t.render(context_instance)
File "/Library/Python/2.7/site-packages/django/template/base.py", line 140, in render
return self._render(context)
File "/Library/Python/2.7/site-packages/django/template/base.py", line 134, in _render
return self.nodelist.render(context)
File "/Library/Python/2.7/site-packages/django/template/base.py", line 840, in render
bit = self.render_node(node, context)
File "/Library/Python/2.7/site-packages/django/template/debug.py", line 78, in render_node
return node.render(context)
File "/Library/Python/2.7/site-packages/django/template/debug.py", line 91, in render
output = force_text(output)
File "/Library/Python/2.7/site-packages/django/utils/encoding.py", line 100, in force_text
s = s.__unicode__()
File "/Library/Python/2.7/site-packages/django/forms/forms.py", line 425, in __str__
return self.as_widget()
File "/Library/Python/2.7/site-packages/django/forms/forms.py", line 475, in as_widget
return widget.render(name, self.value(), attrs=attrs)
File "/Library/Python/2.7/site-packages/django/forms/widgets.py", line 504, in render
options = self.render_options(choices, [value])
File "/Library/Python/2.7/site-packages/django/forms/widgets.py", line 528, in render_options
for option_value, option_label in chain(self.choices, choices):
File "/Library/Python/2.7/site-packages/django/forms/models.py", line 1044, in __iter__
for obj in self.queryset.all():
AttributeError: 'NoneType' object has no attribute 'all'
오류의 * 전체 * 추적을 포함해야합니다. –
전체 추적을 추가했습니다 – ApathyBear
'existing_regions'에서'queryset = None'을'queryset = MyModel.objects.none()'으로 변경해보십시오. – karthikr