By the way, I was using Django 1.2.1. I updated to Django 1.2.3.
Unfortunately, I got the same result.

>>> foo.build_state='sad'
>>> foo.save(force_update=True)
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/usr/lib/python2.6/dist-packages/django/db/models/base.py",
line 434, in save
    self.save_base(using=using, force_insert=force_insert,
force_update=force_update)
  File "/usr/lib/python2.6/dist-packages/django/db/models/base.py",
line 502, in save_base
    raise DatabaseError("Forced update did not affect any rows.")
DatabaseError: Forced update did not affect any rows.


Can this be related to ticket #13864? I read the ticket but could not
tell if the work has been completed and which, if any, version the fix
is in.

Thnx.

On Sep 14, 3:44 pm, Anomal <rsprin...@gmail.com> wrote:
> According to the Django docs,  a new row is created with the new value
> primary key when  when I change the value of a primary key and save
> the object.
>
> In this case, I am looking to change the value. So, I use
> force_update=True. Instead of changing the value of the primary key, I
> get a DatabaseError. Any ideas of what I am doing incorrectly?
>
> class BuildState(models.Model):
>     build_state = models.CharField(primary_key=True, max_length=32)
>
>     class Meta:
>         db_table = u'buildstate'
>
>     def __unicode__(self):
>         return  "BuildState{'build_state' : '%s'}" %
> (self.build_state)
>
> >>> from orm.models import BuildState
> >>> foo = BuildState.objects.get(build_state='failed')
> >>> foo
>
> <BuildState: BuildState{'build_state' : 'failed'}>>>> 
> foo.build_state='nirvana'
> >>> foo.save(force_update=True)
>
> Traceback (most recent call last):
>   File "<console>", line 1, in <module>
>   File "/usr/lib/pymodules/python2.6/django/db/models/base.py", line
> 410, in save
>     self.save_base(force_insert=force_insert,
> force_update=force_update)
>   File "/usr/lib/pymodules/python2.6/django/db/models/base.py", line
> 476, in save_base
>     raise DatabaseError("Forced update did not affect any rows.")
> DatabaseError: Forced update did not affect any rows.
>
>
>
> >>> foo.save()
> >>> # This works as expected. A new row is added.
>
> Thanks,
>  -Rick

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-us...@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