Type Error : 'ExtendedTag' instance expected, got <BasicTag: Hello>

I had created m2m field (required false). When I tried to save form with 
parent select (from multiple choice field), It rises type error. When I 
tried to save it without selecting parent and category, it work fine. I 
couldn't able to figure out what I am missing. 
Code Snipped (full available at https://github.com/Pattinson/m2mdemo)

models.py

class BasicTag(models.Model):
    name = models.CharField(max_length=150, verbose_name="Tag Name")
    image_class = models.CharField(max_length=30, blank=True)
    color = models.CharField(max_length=10, blank=True)

    def __unicode__(self):
        return self.name

class ExtendedTag(models.Model):
    parent = models.ManyToManyField(BasicTag, blank=True,
                                    related_name="parent")
    category = models.ManyToManyField(BasicTag, blank=True,
                                      related_name="category")

    def __unicode__(self):
        return self._id

class CombineTag(BasicTag, ExtendedTag):
    """

    """

forms.py

class CombineTagForm(forms.ModelForm):
    class Meta:
        model = CombineTag


I had follow official doc 
<https://docs.djangoproject.com/en/dev/topics/forms/modelforms/#the-save-method>
 which 
say that

If your model has a many-to-many relation and you specify commit=False when 
you save a form, Django cannot immediately save the form data for the 
many-to-many relation. This is because it isn’t possible to save 
many-to-many data for an instance until the instance exists in the database.

Errors

Request Method: POST
Request URL: http://127.0.0.1:8080/
Django Version: 1.6.5
Exception Type: TypeError
Exception Value:

'ExtendedTag' instance expected, got 
Exception Location: 
/usr/local/lib/python2.7/dist-packages/django/db/models/fields/related.py 
in _add_items, line 649
Python Executable: /usr/bin/python
Python Version: 2.7.6
Python Path:

['/home/virus/project/m2mdemo',
'/usr/lib/python2.7',
'/usr/lib/python2.7/plat-x86_64-linux-gnu',
'/usr/lib/python2.7/lib-tk',
'/usr/lib/python2.7/lib-old',
'/usr/lib/python2.7/lib-dynload',
'/usr/local/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages/PILcompat',
'/usr/lib/python2.7/dist-packages/gtk-2.0',
'/usr/lib/pymodules/python2.7',
'/usr/lib/python2.7/dist-packages/ubuntu-sso-client']
Server time: Thu, 14 Aug 2014 18:37:29 +0000
Traceback Switch to copy-and-paste view

/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py in 
get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs) ...
▶ Local vars
/home/virus/project/m2mdemo/tag/views.py in add
form.save_m2m() ...
▶ Local vars
/usr/local/lib/python2.7/dist-packages/django/forms/models.py in save_m2m
f.save_form_data(instance, cleaned_data[f.name]) ...
▶ Local vars
/usr/local/lib/python2.7/dist-packages/django/db/models/fields/related.py 
in save_form_data
setattr(instance, self.attname, data) ...
▶ Local vars
/usr/local/lib/python2.7/dist-packages/django/db/models/fields/related.py 
in *set*
manager.add(*value) ...
▶ Local vars
/usr/local/lib/python2.7/dist-packages/django/db/models/fields/related.py 
in add
self._add_items(self.source_field_name, self.target_field_name, *objs) ...
▶ Local vars
/usr/local/lib/python2.7/dist-packages/django/db/models/fields/related.py 
in _add_items
raise TypeError("'%s' instance expected, got %r" % 
(self.model._meta.object_name, obj)) ...
▶ Local vars

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/b211f94e-5927-404c-a35a-f6020acfc73c%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to