On Thursday, June 7, 2012 11:22:56 PM UTC-6, rahajiyev wrote:
>
>
> > MyModel.objects.extra(select={'rowid': "rowid || ''"})
> >
> Thanks. I don't think extra() takes primary_key=True, does it?
> I wouldn't want Django to auto-add column id otherwise.
>
> Assuming I have:
> MyModel.objects.extra(select={'id': "rowid || ''"})
> OK, that's fine for fetching the ID itself, suitable for creating
> forms. But what if I want to fetch an item by this virtual PK, or
> update by PK with or without prior fetching?
I haven't tried it, but for those you should be able to use an extra where,
similar to the extra select above.
MyModel.objects.extra(where=["rowid =
whatever_syntax_you_need"]).update(cake="lie")
If using .extra() on all your queries isn't acceptable, you should be able
to write a custom Field class for rowids and add that to your models with
primary_key=True. It will probably break syncdb (but I assume this is a
pre-existing table anyway if you need to use rowids).
https://docs.djangoproject.com/en/dev/howto/custom-model-fields/
Cheers,
Ian
--
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/-/0EGkINIYbYUJ.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/django-users?hl=en.