On Wed, Aug 3, 2011 at 4:57 AM, sasa1...@gmail.com <sasa1...@gmail.com> wrote: > Thank you, DR. But I tried that before and it did not work for some reason. > It basically skips "if Answer.is_valid():" and goes to "else". > > voss >
I think this is because you are abusing your model form, and hence it is not valid. You should not be setting choices on a ModelMultipleChoiceField, you should be supplying a queryset that describes the choices you want. When validating the form, django will check that the submitted values are contained in the ModelMultipleChoiceField's queryset. Furthermore, ModelMultipleChoiceField will normally have id -> description mapping, where as you have description -> description, eg it should generate this HTML - <option value="2">London</option>, where as you have it generating <option value="London">London</option>. It's just wrong. I guess you are trying to do this to control the label generated - you should be doing this[1]. So recap: Don't assign choices to a ModelMultipleChoiceField, assign a queryset Use a custom ModelMultipleChoiceField subclass to control how each model is displayed. Cheers Tom [1] https://docs.djangoproject.com/en/1.3/ref/forms/fields/#modelchoicefield I can't link to the block of text directly, look for this: """ The __unicode__ method of the model will be called to generate string representations of the objects for use in the field's choices; to provide customized representations, subclass ModelChoiceField and override label_from_instance. This method will receive a model object, and should return a string suitable for representing it. """ -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com. To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.