Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Aug 1st, 2012  |  syntax: None  |  size: 5.32 KB  |  hits: 12  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. Django forms keyerror on ModelChoiceField
  2. class SearchForm(forms.Form):
  3.     ...
  4.     island_group = forms.ModelChoiceField(
  5.         required=False,
  6.         queryset=Locality.objects.values_list('islandgroup', flat=True).distinct('islandgroup')
  7.     ...
  8.        
  9. def clean(self):
  10.         cleaned_data = super(SearchForm, self).clean()
  11.  
  12.         if self._errors["island_group"]:
  13.             del self._errors["island_group"]
  14.  
  15.         return cleaned_data
  16.        
  17. Traceback:
  18. File "/home/sam/django-projects/datazone/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
  19.   111.                         response = callback(request, *callback_args, **callback_kwargs)
  20. File "/home/sam/django-projects/datazone/bin/datazone/cdrs/views.py" in cdrs_index
  21.   59.     return render(request, 'cdrs_index.html', context)    
  22. File "/home/sam/django-projects/datazone/local/lib/python2.7/site-packages/django/shortcuts/__init__.py" in render
  23.   44.     return HttpResponse(loader.render_to_string(*args, **kwargs),
  24. File "/home/sam/django-projects/datazone/local/lib/python2.7/site-packages/django/template/loader.py" in render_to_string
  25.   188.         return t.render(context_instance)
  26. File "/home/sam/django-projects/datazone/local/lib/python2.7/site-packages/django/template/base.py" in render
  27.   123.             return self._render(context)
  28. File "/home/sam/django-projects/datazone/local/lib/python2.7/site-packages/django/test/utils.py" in instrumented_test_render
  29.   57.     return self.nodelist.render(context)
  30. File "/home/sam/django-projects/datazone/local/lib/python2.7/site-packages/django/template/base.py" in render
  31.   744.                 bits.append(self.render_node(node, context))
  32. File "/home/sam/django-projects/datazone/local/lib/python2.7/site-packages/django/template/base.py" in render_node
  33.   757.         return node.render(context)
  34. File "/home/sam/django-projects/datazone/local/lib/python2.7/site-packages/django/template/loader_tags.py" in render
  35.   127.         return compiled_parent._render(context)
  36. File "/home/sam/django-projects/datazone/local/lib/python2.7/site-packages/django/test/utils.py" in instrumented_test_render
  37.   57.     return self.nodelist.render(context)
  38. File "/home/sam/django-projects/datazone/local/lib/python2.7/site-packages/django/template/base.py" in render
  39.   744.                 bits.append(self.render_node(node, context))
  40. File "/home/sam/django-projects/datazone/local/lib/python2.7/site-packages/django/template/base.py" in render_node
  41.   757.         return node.render(context)
  42. File "/home/sam/django-projects/datazone/local/lib/python2.7/site-packages/django/template/loader_tags.py" in render
  43.   64.             result = block.nodelist.render(context)
  44. File "/home/sam/django-projects/datazone/local/lib/python2.7/site-packages/django/template/base.py" in render
  45.   744.                 bits.append(self.render_node(node, context))
  46. File "/home/sam/django-projects/datazone/local/lib/python2.7/site-packages/django/template/base.py" in render_node
  47.   757.         return node.render(context)
  48. File "/home/sam/django-projects/datazone/local/lib/python2.7/site-packages/django/template/defaulttags.py" in render
  49.   227.                 nodelist.append(node.render(context))
  50. File "/home/sam/django-projects/datazone/local/lib/python2.7/site-packages/django/template/base.py" in render
  51.   792.             output = self.filter_expression.resolve(context)
  52. File "/home/sam/django-projects/datazone/local/lib/python2.7/site-packages/django/template/base.py" in resolve
  53.   510.                 obj = self.var.resolve(context)
  54. File "/home/sam/django-projects/datazone/local/lib/python2.7/site-packages/django/template/base.py" in resolve
  55.   653.             value = self._resolve_lookup(context)
  56. File "/home/sam/django-projects/datazone/local/lib/python2.7/site-packages/django/template/base.py" in _resolve_lookup
  57.   683.                         current = getattr(current, bit)
  58. File "/home/sam/django-projects/datazone/local/lib/python2.7/site-packages/django/forms/forms.py" in _errors
  59.   415.         return self.form.errors.get(self.name, self.form.error_class())
  60. File "/home/sam/django-projects/datazone/local/lib/python2.7/site-packages/django/forms/forms.py" in _get_errors
  61.   112.             self.full_clean()
  62. File "/home/sam/django-projects/datazone/local/lib/python2.7/site-packages/django/forms/forms.py" in full_clean
  63.   268.         self._clean_form()
  64. File "/home/sam/django-projects/datazone/local/lib/python2.7/site-packages/django/forms/forms.py" in _clean_form
  65.   296.             self.cleaned_data = self.clean()
  66. File "/home/sam/django-projects/datazone/bin/datazone/cdrs/forms.py" in clean
  67.   113.         if self._errors["island_group"]:
  68.  
  69. Exception Type: KeyError at /collections/
  70. Exception Value: 'island_group'
  71.        
  72. >>> from django import forms
  73. >>> from django.contrib.auth.models import *
  74.  
  75. >>> class F(forms.Form):
  76. ...     user = forms.ModelChoiceForm(queryset=User.objects.values_list('username', flat=True))
  77.  
  78. >>> print F().as_p()
  79. <p><label for="id_user">User:</label> <select name="user" id="id_user">
  80. <option value="" selected="selected">---------</option>
  81. <option value="okm">okm</option>
  82. </select></p>
  83.        
  84. >>> class F(forms.Form):
  85. ...     user = forms.ModelChoiceForm(queryset=User.objects)
  86.  
  87. >>> print F().as_p()
  88. <p><label for="id_user">User:</label> <select name="user" id="id_user">
  89. <option value="" selected="selected">---------</option>
  90. <option value="1">okm</option>
  91. </select></p>