这是模型结构:客户是用户,客户可以是公司或个人:
class Client(User):
#fields
class ClientCorporate(Client):
#fields
class ClientPerson(Client):
#fields
客户可以下订单:
class Order(models.Model):
client=models.ForeignKey(Client)
#fields
我尝试为任何类型的客户创建通用订单列表,这里是view:
def orders_list(request):
client=request.user.client
return list_detail.object_list(request,
queryset = client.order_set.all(),
#templates ...
)
导致错误:
渲染时DatabaseError:没有这样的列:cabinets_order.client_id
我浏览数据库并发现所有用户子项都有列“user_prt_id”。那么,让它在django中工作的最佳方法是什么?创建自定义管理器,或以适当的方式更改模型? ...
答案 0 :(得分:0)
此错误仅表示您的client_id
表中没有数据库列cabinets_order
。
确保python manage.py syncdb
。如果在syncdb
之后添加了一次外键,则必须重置它,或手动添加外键。您可以通过运行python manage.py sqlall cabinets
生成所需的SQL,然后选择ForeignKey生成位。
如果您可以失去当前数据(如果正在开发中),请运行python manage.py reset cabinets