django中的模型继承:从父类获取OneToMany对象



以下是模型结构:客户是用户,客户可以是公司或个人:

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

class ClientPerson(Client):
    #fields

客户可以下单:

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

我试图为任何类型的客户创建通用订单列表,以下是视图:

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

这导致了一个错误:

呈现时数据库错误:没有这样的列:cabinets_order.client_id

我浏览数据库,发现所有User子级都有"User_prt_id"列。那么,让它在django工作的最佳方式是什么?创建自定义管理器,或以适当的方式更改模型。。。

这个错误只是意味着cabinets_order表中没有数据库列client_id

确保python manage.py syncdb。如果您在syncdbing之后添加了一次外键,则必须重置它,或者手动添加外键。您可以通过运行python manage.py sqlall cabinets,然后选择ForeignKey生成位来生成所需的SQL。

如果您可以忍受丢失当前数据(如果正在开发中),只需运行python manage.py reset cabinets

最新更新