I ran into something weird in Django and i'm completely stumped. I got it to work but i'm trying to understand the logic behind it.
I have the following data model: from django.db import models class Setting(models.Model): name = models.CharField(max_length=200) value = models.TextField() class Meta: db_table = "t_settings" def __unicode__(self): return self.name I have the following form model: from django import forms class GlobalSettingsForm(forms.Form): # specify all the variables here site_name = forms.CharField(required=True, max_length=200, label="Site Name", help_text="What you want your site to be called company name, personal name, etc." ) site_tagline = forms.CharField(required=False, max_length=200, label="Site Tagline", help_text="A quick tag line on what your site is about") site_url = forms.URLField(required=True, label="Site URL", max_length=200, help_text="All links that reference your site will use this url. I would not change this unless you are super sure." ) >From the shell I have the following code to create the form: form = GlobalSettingsForm(data={'site_name':'test','site_url':'http:// localhost/','site_tagline':'test'}) Running a type on form i get: <class 't_settings.forms.GlobalSettingsForm'> , perfect so far... next I call form.is_valid() to get the cleaned_data attribute and all is good. form.cleaned_data returns {'site_name': u'test', 'site_tagline': u'test', 'site_url': u'http://localhost/'} as expected now i want to change the information in the database so I loop through cleaned_data, grab the object, and save: for item in form.cleaned_data: setting = Setting.objects.filter(name=item) setting[0].value = form.cleaned_data[item] setting[0].save() but it does not work. setting[0].value = form.cleaned_data[item] fails to assign the data if i run it like this it works: for item in form.cleaned_data: setting = Setting.objects.get(name__exact=item) setting.value = form.cleaned_data[item] setting.save() all i did was change the method used from filter to get, why does one work and not the other?? if i create the objects individually and equate them they are the same: setting = Setting.objects.get(name__exact=item) setting2 = Setting.objects.filter(name=item) setting2[0] == setting it equals True type(setting2[0]) == setting it equals True Also I am using, Django 1.1 with MySql Python... Stumped. --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---