Tuesday, February 7, 2012

Re: Models inheritance in django: how to change PK "_ptr_id" on "id"?

I just read your e-mail quick and somewhat carelessly, so forgive me if I'm missing something.


Here's a list of things for you to check:

* Have you defined your Client model with abstract = True in its Meta options?[1]
* Have you syncdb'd[2]?
* If you must name your pk something else, just follow the docs[3]

[1] http://django.me/abstract-base-classes
[2] http://django.me/syncdb
[3] http://django.me/automatic-primary-key-fields


Cheers,
AT


On Tue, Feb 7, 2012 at 4:26 PM, Artyom Chernetzov <achernetzov@gmail.com> wrote:
Here is model structure: Client is User, Client can be corporate or person:

    class Client(User):
        #fields
      
    class ClientCorporate(Client):
        #fields
        
        
    class ClientPerson(Client):
        #fields

And client can make orders:

    class Order(models.Model):
        client=models.ForeignKey(Client)
        #fields

I try to create common orders list for any type of client, here is view:

    def orders_list(request):
        client=request.user.client
        return list_detail.object_list(request,
            queryset = client.order_set.all(),
            #templates ...
            )

And it leads to an error:

**DatabaseError while rendering: no such column: cabinets_order.client_id**

I browse db and find that all User childs have column "user_prt_id". I can't find way to change pk name in inherited models. But maybe there is some better approach?

--
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/-/RrPQgVp3R2EJ.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to django-users+unsubscribe@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+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/django-users?hl=en.

No comments:

Post a Comment