Re: validation error in Django Admin

2012-12-14 Thread Chris Cogdon
Thanks for the follow up!

On Wednesday, December 12, 2012 4:21:59 PM UTC-8, Mike Dewhirst wrote:
>
> I'm getting an unexpected validation error in Admin which baffles me. 
> Any hints appreciated ... here is the traceback 
>
> http://dpaste.com/844972/ 
>
> At the bottom of the traceback where the error is raised, the local vars 
> are ... 
>
> self  
> value u'33' 
> key 'pk' 
>
> When I save the item, it auto-generates many-to-many connections to a 
> few standard images in the database via a through table. However there 
> is a rule which says "if ever these two images are connected to an item, 
> only keep this one and drop that one." 
>
> I use a post-save signal to "drop that one" using ... 
>
>Item_Pictogram.objects.filter(item=instance, pictogram=pic, 
> via='auto').delete() 
>
> The local var value above being u'33' happens to be the exact pk of the 
> Item_Pictogram record I want to delete - I checked in Postgres. 
>
> The pk should be an integer but I suppose that's nothing. 
>
> Thanks for any help 
>
> Mike 
>

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



[Solved] validation error in Django Admin

2012-12-13 Thread Mike Dewhirst

Thanks Chris

It turned out I hadn't read the docs properly. Prior to posting the 
problem I had tried ...


instance.item_pictogram_set.remove(pic)

... to be told the relatedmanager object didn't have a remove attribute 
when (I thought) it should. So I adjusted the database to make both fk 
fields nullable and deliberately made them None to get the code working. 
But I should have stuck with nullable foreign keys and the above 
instance.item_pictogram_set.remove(pic) because that was all that is 
required.


I hadn't read beyond the example code in the docs [1] for the remove 
method where it says ...


"In order to prevent database inconsistency, this method only exists on 
ForeignKey objects where null=True. If the related field can't be set to 
None (NULL), then an object can't be removed from a relation without 
being added to another. In the above example, removing e from 
b.entry_set() is equivalent to doing e.blog = None, and because the blog 
ForeignKey doesn't have null=True, this is invalid."



[1] 
https://docs.djangoproject.com/en/dev/ref/models/relations/#django.db.models.fields.related.RelatedManager.remove


Mike


On 13/12/2012 11:30pm, Chris Cogdon wrote:

I'm going to take a guess that when you "drop one" of them, deleting it,
there's still a query going on that might want to refer to the other
one, and the to_python fails because that reference doesn't exist anymore.

You might have better luck if you're using a OneToOne or ForeignKey
(onetomany), which will let django manage that relationship for you.

On Wednesday, December 12, 2012 4:21:59 PM UTC-8, Mike Dewhirst wrote:

I'm getting an unexpected validation error in Admin which baffles me.
Any hints appreciated ... here is the traceback

http://dpaste.com/844972/

At the bottom of the traceback where the error is raised, the local
vars
are ...

self 
value u'33'
key 'pk'

When I save the item, it auto-generates many-to-many connections to a
few standard images in the database via a through table. However there
is a rule which says "if ever these two images are connected to an
item,
only keep this one and drop that one."

I use a post-save signal to "drop that one" using ...

Item_Pictogram.objects.filter(item=instance, pictogram=pic,
via='auto').delete()

The local var value above being u'33' happens to be the exact pk of the
Item_Pictogram record I want to delete - I checked in Postgres.

The pk should be an integer but I suppose that's nothing.

Thanks for any help

Mike

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


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



Re: validation error in Django Admin

2012-12-13 Thread Chris Cogdon
I'm going to take a guess that when you "drop one" of them, deleting it, 
there's still a query going on that might want to refer to the other one, 
and the to_python fails because that reference doesn't exist anymore.

You might have better luck if you're using a OneToOne or ForeignKey 
(onetomany), which will let django manage that relationship for you. 

On Wednesday, December 12, 2012 4:21:59 PM UTC-8, Mike Dewhirst wrote:
>
> I'm getting an unexpected validation error in Admin which baffles me. 
> Any hints appreciated ... here is the traceback 
>
> http://dpaste.com/844972/ 
>
> At the bottom of the traceback where the error is raised, the local vars 
> are ... 
>
> self  
> value u'33' 
> key 'pk' 
>
> When I save the item, it auto-generates many-to-many connections to a 
> few standard images in the database via a through table. However there 
> is a rule which says "if ever these two images are connected to an item, 
> only keep this one and drop that one." 
>
> I use a post-save signal to "drop that one" using ... 
>
>Item_Pictogram.objects.filter(item=instance, pictogram=pic, 
> via='auto').delete() 
>
> The local var value above being u'33' happens to be the exact pk of the 
> Item_Pictogram record I want to delete - I checked in Postgres. 
>
> The pk should be an integer but I suppose that's nothing. 
>
> Thanks for any help 
>
> Mike 
>

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



validation error in Django Admin

2012-12-12 Thread Mike Dewhirst
I'm getting an unexpected validation error in Admin which baffles me. 
Any hints appreciated ... here is the traceback


http://dpaste.com/844972/

At the bottom of the traceback where the error is raised, the local vars 
are ...


self
value   u'33'
key 'pk'

When I save the item, it auto-generates many-to-many connections to a 
few standard images in the database via a through table. However there 
is a rule which says "if ever these two images are connected to an item, 
only keep this one and drop that one."


I use a post-save signal to "drop that one" using ...

  Item_Pictogram.objects.filter(item=instance, pictogram=pic, 
via='auto').delete()


The local var value above being u'33' happens to be the exact pk of the 
Item_Pictogram record I want to delete - I checked in Postgres.


The pk should be an integer but I suppose that's nothing.

Thanks for any help

Mike

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