我正在Django开发一个物业管理应用程序,最终会有多家公司,每个公司都有多个用户。我想让每个公司都有自己的道路。例如,mysite.com/company1/property/1/
最后,尽管我想把来自不同公司的条目集中到一个站点上--所以我想把所有的东西都保存在一个数据库中。
我能想到这样做的一种方法是建立一个公司模型,然后让每个属性都有一个ForeignKey for Company。但是,我不知道如何最好地将视图编码为只显示或修改当前公司的视图。
做这件事最好的方法是什么?
编辑:理想情况下,我希望创建一个视图/助手方法,该方法执行一个查询,该查询将结果属性限制为公司,然后将查询集和请求传递给另一个视图。我想要一个类似于:mysite.com/company1/listproperties的URL结构。因此,这个函数将属性限制为Company1,然后我希望使用URL的第二部分来确定要使用的视图(listProperties,searchProperties),并将剩下的作为参数传递。但是,我不知道如何编码这个第一个过滤视图和URL处理。
发布于 2014-06-17 06:06:29
你这里有几件事要问。1:如何建模模型之间的关系;2:如何显示单个公司的视图
对于第一个问题,Django在用关系进行数据建模时处理类似的问题。以下是关系文档教程:https://docs.djangoproject.com/en/dev/topics/db/models/#relationships
在您的示例中,属性到公司的关系是“多对一”,这意味着一个公司有许多属性,但是一个属性只有一个公司。在Django(我给您的链接)中,通常所做的都是模型中的一个外键,即“多”,或者在您的情况下是属性。我会这样做:
class Property(models.Model):
owner = models.ForeignKey(Company)这还允许您查询关系,解决第二个问题。
如果我有一个公司c,我可以像这样访问与它相关的所有属性:
c.property_set.all()
# => [Property <MyProperty>, Property <OtherProperty>, ...]这是在视图中执行的查询,然后传递给模板。
这里有一个Django提供的例子,您可能会发现它非常有用:one/。
https://stackoverflow.com/questions/24255504
复制相似问题