﻿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
32597	generic inline formsets: object has no attribute 'fk'	Éric Tanter	nobody	"Hi,

I think I'm facing a zombie-bug reminiscent of ticket #9498:
https://code.djangoproject.com/ticket/9498
From 12 years ago and marked as solved.


The setting is simple: I have a model with a generic field (with non-standard names). The corresponding inline class declares the `ct_field` and `ct_fk_field` as required. 

If I don't try to customize the formset, then all works fine. However, as soon as I declare a formset attribute for the inline (even if I use `formset=BaseInlineFormSet`), it crashes with an error:

`type object 'DocumentFormSet' has no attribute 'fk'`

With the debugger I traced the problem down to the execution of this method in BaseInlineFormSet (during the initialization process of the formsets):

  {{{#!python
@classmethod
def get_default_prefix(cls):
   return cls.fk.remote_field.get_accessor_name(model=cls.model).replace('+', '')
  }}}

Problem is: `cls` has no field `fk` (it has `ct_fk_field` and `ct_field` properly set, though).



I've done the following ""fix"":

1. redefine the get_default_prefix method to use `ct_field` instead of `fk`

  {{{#!python
    @classmethod
    def get_default_prefix(cls):
        return cls.ct_field.remote_field.get_accessor_name(model=cls.model).replace('+', '')
  }}}


2. at the instance methods level, I then had the same errors (`no attribute 'fk'`), so I defined:

  {{{#!python
    @property
    def fk(self):
        return self.ct_field
}}}
And it works (I tried defining an `empty_form` property to set an initial value of my inlines, and it behaves as expected.

Is that a known bug of 2.2? is it fixed upstream? Or am I missing something and there's some documentation somewhere explaining what to do in that case? (my fix is clearly not intended for users to do, I believe).

Thanks

Éric"	Bug	new	Forms	2.2	Normal		generic field, inline formset		Unreviewed	0	0	0	0	0	0
