﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
20374	When saving a form in Admin with an Inline, I get 'not subscriptable' error	evlsin@…	nobody	"When I try to save in the admin, I get:

TypeError: 'MyModelName' object is not subscriptable

affected line is: e = self.model(None, None, user_id, content_type_id, smart_text(object_id), object_repr[:200], action_flag, change_message)

I dropped back down to Django 1.4.5 and the form works just fine now

admin.py:

{{{
class CountryNameInline(admin.TabularInline):
    model = GlobalCountriesNames
    extra = 1

class CountryAdmin(admin.ModelAdmin):
    list_display = ('countrycode', 'country_name', 'primary_lang_id', 'active')
    list_display_links = ('countrycode', 'country_name')
    inlines = [CountryNameInline, ]

}}}

models.py:


{{{
class GlobalLanguages(models.Model):
    lang_id = models.CharField(max_length=2,
                               primary_key=True,
                               verbose_name=_('Language ID'),
                               help_text=_('ISO 639-1 2 letter language code - see: <a href=""http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes"" target=_blank>http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes</a>'))
    lang_name = models.CharField(max_length=30,
                                 verbose_name=_('Language Name'),
                                 help_text=_('Use the language name in it\'s native language'))
    active = models.BooleanField(default=True,
                                 verbose_name=_('Active'),
                                 db_column='is_active')
    created = models.DateTimeField(auto_now_add=True,
                                   editable=False)
    modified = models.DateTimeField(auto_now=True,
                                    editable=False)

    def __unicode__(self):
        return self.lang_name

    class Meta:
        verbose_name = _('Language')
        verbose_name_plural = _('Languages')
        permissions = (('can_add_edit_languages', _('Can Add or Edit Languages')))

class GlobalCountries(models.Model):
    countrycode = models.CharField(max_length=2,
                                   primary_key=True,
                                   verbose_name=_('Country Code'))
    primary_lang_id = models.ForeignKey(GlobalLanguages)
    active = models.BooleanField(default=True,
                                 verbose_name=_('Active'),
                                 db_column='is_active')
    created = models.DateTimeField(auto_now_add=True)
    modified = models.DateTimeField(auto_now=True)

    class Meta:
        verbose_name = _('Country')
        verbose_name_plural = _('Countries')
        permissions = (('can_add_edit_countries', _('Can Add or Edit Countries')))

    def _get_country_name(self):
        cur_lang = get_language()
        countryname = GlobalCountriesNames.objects.get(country_id=self.countrycode,
                                                        lang_id=cur_lang)
        if countryname is None:
            countryname = GlobalCountriesNames.objects.get(country_id=self.countrycode,
                                                            lang_id='en')
        return unicode(countryname)

    country_name = property(_get_country_name)

    def __unicode__(self):
        return self.country_name


class GlobalCountriesNames(models.Model):
    country_id = models.ForeignKey(GlobalCountries,
                                   verbose_name=_('Country'))
    lang_id = models.ForeignKey(GlobalLanguages,
                                verbose_name=_('Language'))
    country_name = models.CharField(max_length=120,
                                   verbose_name=_('Country Name'))
    created = models.DateTimeField(auto_now_add=True)
    modified = models.DateTimeField(auto_now=True)

    def __unicode__(self):
        return self.country_name

    class Meta:
        verbose_name = _('Country Name')
        verbose_name_plural = _('Country Names')
        unique_together = ('country_id', 'lang_id')
}}}


"	Bug	closed	contrib.admin	1.5	Normal	invalid			Unreviewed	0	0	0	0	0	0
