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 4519,Cannot use form_from_instance with a ManyToMany field,todd.kennedy@…,Manuel Saelices,"There seems to be an issue when trying to use form_from_instance if the model you're basing it on has a ManyToMany field. Here's the code I'm using and the python interpreter issue. I'm using SVN revision 5448. {{{ class Ringback(models.Model): content_provider = models.ForeignKey(ContentProvider) song_title = models.CharField(maxlength=255, db_index=True) artist = models.ForeignKey(Artist) wav_filename = models.CharField(maxlength=255) external_id = models.CharField(maxlength=255) price_code = models.CharField(maxlength=255) upload_to_comverse = models.BooleanField(default=True) upload_to_nms = models.BooleanField(default=True) comverse_categories = models.ManyToManyField(ComverseCategory, blank=True) nms_categories = models.ManyToManyField(NMSCategory, blank=True) reason= models.TextField(blank=True) entered_on = models.DateTimeField(auto_now_add=True) updated_on = models.DateTimeField(auto_now=True) entered_by = models.ForeignKey(User) duplicate_entry = models.BooleanField(default=False) duplicate_reason = models.TextField(blank=True) exported_to = models.ManyToManyField(Carrier) import_set = models.ForeignKey(RBTSource) exports = models.ManyToManyField(Export) >>> rb = Ringback.objects.get(pk=2) >>> f = form_for_instance(rb, fields=('content_provider', 'song_title','artist','wav_filename','external_id','price_code')) >>> print f() [output truncated] >>> f = form_for_instance(rb, fields=('content_provider', 'song_title','artist','wav_filename','external_id','price_code','comverse_categories')) Traceback (most recent call last): File """", line 1, in File ""/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/django/newforms/models.py"", line 106, in form_for_instance formfield = formfield_callback(f, initial=current_value) File ""/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/django/newforms/models.py"", line 86, in def form_for_instance(instance, form=BaseForm, fields=None, formfield_callback=lambda f, **kwargs: f.formfield(**kwargs)): File ""/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/django/db/models/fields/related.py"", line 746, in formfield defaults['initial'] = [i._get_pk_val() for i in defaults['initial']] File ""/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/django/db/models/query.py"", line 108, in __iter__ return iter(self._get_data()) File ""/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/django/db/models/query.py"", line 470, in _get_data self._result_cache = list(self.iterator()) File ""/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/django/db/models/query.py"", line 174, in iterator select, sql, params = self._get_sql_clause() File ""/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/django/db/models/query.py"", line 484, in _get_sql_clause joins2, where2, params2 = self._filters.get_sql(opts) File ""/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/django/db/models/query.py"", line 662, in get_sql joins2, where2, params2 = val.get_sql(opts) File ""/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/django/db/models/query.py"", line 713, in get_sql return parse_lookup(self.kwargs.items(), opts) File ""/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/django/db/models/query.py"", line 847, in parse_lookup joins2, where2, params2 = lookup_inner(path, lookup_type, value, opts, opts.db_table, None) File ""/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/django/db/models/query.py"", line 965, in lookup_inner raise TypeError, ""Cannot resolve keyword '%s' into field. Choices are: %s"" % (name, "", "".join(choices)) TypeError: Cannot resolve keyword 'ringback' into field. Choices are: id, name, category_type, entered_on, updated_on, entered_by }}}",,closed,Forms,dev,,fixed,newforms manytomany sprintsept14,,Unreviewed,0,0,0,0,0,0