Nevermind. I had overriden the get_query_set with a custom manager
that only returned a subset of the CEOs. Word to the wise.

On Feb 2, 1:04 pm, Jeff <thejefflar...@gmail.com> wrote:
> So I have two models a CEO model:
> class Ceo (models.Model):
>     first_name = models.CharField(max_length=63)
>     last_name = models.CharField(max_length=63)
>     website = models.URLField()
>     company_name = models.CharField(max_length=63, unique=False)
>     company_address = models.ForeignKey(Address)
>     ctime = models.DateTimeField(auto_now=True)
>     mtime = models.DateTimeField(auto_now_add=True)
>
> Which was originally created with manage.py syncdb. I've since added a
> model to track industries:
>
> class Industry(models.Model):
>     name = models.CharField(max_length=63)
>
> and a foreignkey field to Ceo:
>     industry = models.ForeignKey(Industry, null=True)
>
> all is fine and good on the backend in the database (e.g. I
> successfully migrated the db after the change). I'm trying to import
> the industries to each ceo instance with the following code:
>
> def update_ceo_industry(**kwargs):
>   ceo  = Ceo.objects.get(**{
>             'first_name': kwargs['fname'],
>             'last_name': kwargs['lname'],
>             'website': kwargs['Website'],
>             'company_name': kwargs['Company'],
>         })
>    #I get the industry's name here and store it in industry
>    industry_obj, created = Industry.objects.get_or_create(**{'name':
> unicode(industry)})
>    ceo.industry = industry_obj
>    ceo.save(force_update=True)
>    return
>
> When I run this I can see that the industry is created, but once it
> gets to the save function throws this error:
>   File "industry_getter.py", line 75, in update_ceo_industry
>     ceo.save(force_update=True)
>   File "/usr/lib/python2.5/site-packages/django/db/models/base.py",
> line 328, in save
>     self.save_base(force_insert=force_insert,
> force_update=force_update)
>   File "/usr/lib/python2.5/site-packages/django/db/models/base.py",
> line 381, in save_base
>     raise DatabaseError("Forced update did not affect any rows.")
>
> When I take out forced_update=True I get:
>
> File "industry_getter.py", line 75, in update_ceo_industry
>     ceo.save()
>   File "/usr/lib/python2.5/site-packages/django/db/models/base.py",
> line 328, in save
>     self.save_base(force_insert=force_insert,
> force_update=force_update)
>   File "/usr/lib/python2.5/site-packages/django/db/models/base.py",
> line 400, in save_base
>     result = manager._insert(values, return_id=update_pk)
>   File "/usr/lib/python2.5/site-packages/django/db/models/manager.py",
> line 144, in _insert
>     return insert_query(self.model, values, **kwargs)
>   File "/usr/lib/python2.5/site-packages/django/db/models/query.py",
> line 1004, in insert_query
>     return query.execute_sql(return_id)
>   File "/usr/lib/python2.5/site-packages/django/db/models/sql/
> subqueries.py", line 317, in execute_sql
>     cursor = super(InsertQuery, self).execute_sql(None)
>   File "/usr/lib/python2.5/site-packages/django/db/models/sql/
> query.py", line 1974, in execute_sql
>     cursor.execute(sql, params)
>   File "/usr/lib/python2.5/site-packages/django/db/backends/util.py",
> line 19, in execute
>     return self.cursor.execute(sql, params)
> psycopg2.IntegrityError: duplicate key value violates unique
> constraint "finance_ceo_pkey"
>
> Now the problem here is that if I try:
>
> select * from finance_ceo where industry_id is not null;
>
> I get 0 rows in either case. But the industry row is there:
>
> select * from finance_industry;  yields:
>
>   1 | Commercial Banks
>
> So what's wrong with the lines:
>
>    ceo.industry = industry_obj
>    ceo.save(force_update=True)
>
> Any thoughts?
>
> --Jeff
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to