Code

Opened 8 months ago

Closed 8 months ago

#21437 closed Bug (wontfix)

removed rel_name attribute from BaseInlineFormSet

Reported by: jerzyk Owned by: nobody
Component: Uncategorized Version: 1.6
Severity: Normal Keywords:
Cc: Triage Stage: Accepted
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

django 1.6 removed rel_name atribute from BaseInlineFormSet without depreciation path or even without note in backward incompatible changes.

Attachments (0)

Change History (5)

comment:1 Changed 8 months ago by akaariai

  • Needs documentation unset
  • Needs tests unset
  • Patch needs improvement unset

The self.rel_name attribute was never used inside Django, and it wasn't part of the public API. I am not sure what our policy of mentioning such changes in release notes is.

It seems you can get the same value by form.fk.related.get_accessor_name(). Unfortunately in some model inheritance cases that wont work, you need to reconstruct the RelatedObject by hand.

comment:2 Changed 8 months ago by jerzyk

imho private API is everything that starts with underscore in the classes, everything else is public, documented or not. in the current 1.6 release notes there are comments about private APIs too.

I suppose it is too late for depreciation path, so update to the release notes should be fine.

comment:3 Changed 8 months ago by akaariai

  • Triage Stage changed from Unreviewed to Accepted

Django doesn't distinguish between private and public api with underscore (this is mainly for historical reasons). Instead anything that is documented is public API, what isn't is private.

I guess release notes mention is OK.

comment:4 Changed 8 months ago by aaugustin

Our policy is not to mention changes to private APIs in the release notes. That's why they're called "private".

We make exceptions when we have overwhelming evidence that an API is widely used even though it's private. I'm talking about stuff like Model._meta or Form._errors.

rel_name is a fairly obscure API deep inside formsets with no clear purpose. I don't believe it crosses the threshold for a mention in the releases notes.

-0 because I don't want to get down a path where we're eventually expected to document any change we do to any private API anywhere in Django.

comment:5 Changed 8 months ago by akaariai

  • Resolution set to wontfix
  • Status changed from new to closed

OK for me. I'll bounce this to wontfix then. (I am on flip-flop mood today...)

Add Comment

Modify Ticket

Change Properties
<Author field>
Action
as closed
as The resolution will be set. Next status will be 'closed'
The resolution will be deleted. Next status will be 'new'
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.