Re: Model equality in inheritance cases

2012-07-16 Thread charettes
#11154 is really about another issue; it has nothing to do with model 
equality.

I'll try to submit a new patch with a release not in the next days as 
requested by anssi.

Le lundi 16 juillet 2012 17:44:06 UTC-4, Daniel Sokolowski a écrit :
>
> I would also throw this ticket into the mix - 
> https://code.djangoproject.com/ticket/11154, it's related and has bit me 
> in 
> the past. 
>
> -Original Message- 
> From: Anssi K��ri�inen 
> Sent: Monday, July 16, 2012 3:07 PM 
> To: Django developers 
> Subject: Model equality in inheritance cases 
>
> I was looking through some old tickets, and spotted a case which I had 
> worked on some time ago. The case is about model instance equality in 
> different inheritance situations. There are three different cases to 
> consider (assuming primary keys match): 
>   - should a proxy model be equal to its proxy parent? 
>   - should a inherited model be equal to its parent instance? 
>   - what to do in model multi-inheritance cases. 
>
> My take is that proxy models should be equal to their parent 
> instances, otherwise inherited models should not equal their parent 
> instances. The reasons for this are backwards compatibility, 
> performance and achieving correctness for all cases. 
>
> I won't go into details of what kind of problems multitable multi- 
> inheritance causes for achieving correctness. Suffice to say that it 
> is possible to construct cases where is it very hard to tell if two 
> models should be equal or not. Refer to ticket #16458 for more 
> details. 
>
> The backwards compatibility issue is in my opinion enough to say "no" 
> to the multitable-inheritance case. Django has one use in admin which 
> downright breaks when child models are equal to their parent models. 
> User code could have similar problems, too. 
>
> Writing a patch for proxy model equality is straightforward. Writing a 
> patch which takes all the corner cases of multitable multi-inheritance 
> in account is not trivial at all. 
>
> So, I propose to go forward with proxy model equality. Doing something 
> to this long standing issue would be welcome in any case. 
>
> For more dirty details, see ticket #16458. Tickets #11892 and #14492 
> are related. 
>
> - Anssi 
>
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Django developers" group. 
> To post to this group, send email to django-developers@googlegroups.com. 
> To unsubscribe from this group, send email to 
> django-developers+unsubscr...@googlegroups.com. 
> For more options, visit this group at 
> http://groups.google.com/group/django-developers?hl=en. 
>
>
> Daniel Sokolowski 
> Web Engineer 
> Danols Web Engineering 
> http://webdesign.danols.com/ 
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django developers" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/django-developers/-/eO41x26agEIJ.
To post to this group, send email to django-developers@googlegroups.com.
To unsubscribe from this group, send email to 
django-developers+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-developers?hl=en.



Re: Model equality in inheritance cases

2012-07-16 Thread Daniel Sokolowski
I would also throw this ticket into the mix - 
https://code.djangoproject.com/ticket/11154, it's related and has bit me in 
the past.


-Original Message- 
From: Anssi Kääriäinen

Sent: Monday, July 16, 2012 3:07 PM
To: Django developers
Subject: Model equality in inheritance cases

I was looking through some old tickets, and spotted a case which I had
worked on some time ago. The case is about model instance equality in
different inheritance situations. There are three different cases to
consider (assuming primary keys match):
 - should a proxy model be equal to its proxy parent?
 - should a inherited model be equal to its parent instance?
 - what to do in model multi-inheritance cases.

My take is that proxy models should be equal to their parent
instances, otherwise inherited models should not equal their parent
instances. The reasons for this are backwards compatibility,
performance and achieving correctness for all cases.

I won't go into details of what kind of problems multitable multi-
inheritance causes for achieving correctness. Suffice to say that it
is possible to construct cases where is it very hard to tell if two
models should be equal or not. Refer to ticket #16458 for more
details.

The backwards compatibility issue is in my opinion enough to say "no"
to the multitable-inheritance case. Django has one use in admin which
downright breaks when child models are equal to their parent models.
User code could have similar problems, too.

Writing a patch for proxy model equality is straightforward. Writing a
patch which takes all the corner cases of multitable multi-inheritance
in account is not trivial at all.

So, I propose to go forward with proxy model equality. Doing something
to this long standing issue would be welcome in any case.

For more dirty details, see ticket #16458. Tickets #11892 and #14492
are related.

- Anssi

--
You received this message because you are subscribed to the Google Groups 
"Django developers" group.

To post to this group, send email to django-developers@googlegroups.com.
To unsubscribe from this group, send email to 
django-developers+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-developers?hl=en.



Daniel Sokolowski
Web Engineer
Danols Web Engineering
http://webdesign.danols.com/ 


--
You received this message because you are subscribed to the Google Groups "Django 
developers" group.
To post to this group, send email to django-developers@googlegroups.com.
To unsubscribe from this group, send email to 
django-developers+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-developers?hl=en.



Model equality in inheritance cases

2012-07-16 Thread Anssi Kääriäinen
I was looking through some old tickets, and spotted a case which I had
worked on some time ago. The case is about model instance equality in
different inheritance situations. There are three different cases to
consider (assuming primary keys match):
  - should a proxy model be equal to its proxy parent?
  - should a inherited model be equal to its parent instance?
  - what to do in model multi-inheritance cases.

My take is that proxy models should be equal to their parent
instances, otherwise inherited models should not equal their parent
instances. The reasons for this are backwards compatibility,
performance and achieving correctness for all cases.

I won't go into details of what kind of problems multitable multi-
inheritance causes for achieving correctness. Suffice to say that it
is possible to construct cases where is it very hard to tell if two
models should be equal or not. Refer to ticket #16458 for more
details.

The backwards compatibility issue is in my opinion enough to say "no"
to the multitable-inheritance case. Django has one use in admin which
downright breaks when child models are equal to their parent models.
User code could have similar problems, too.

Writing a patch for proxy model equality is straightforward. Writing a
patch which takes all the corner cases of multitable multi-inheritance
in account is not trivial at all.

So, I propose to go forward with proxy model equality. Doing something
to this long standing issue would be welcome in any case.

For more dirty details, see ticket #16458. Tickets #11892 and #14492
are related.

 - Anssi

-- 
You received this message because you are subscribed to the Google Groups 
"Django developers" group.
To post to this group, send email to django-developers@googlegroups.com.
To unsubscribe from this group, send email to 
django-developers+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-developers?hl=en.