CodeIgniter& Datamapper作为前端,Django Admin作为后端,数据库表不一致

时间:2010-03-25 17:11:10

标签: django codeigniter django-models django-admin codeigniter-datamapper

我为使用Django作为管理员后端的网站创建了一个数据库。然而,因为托管站点的服务器将无法支持Python,我发现自己需要在PHP中执行前端,因此我决定使用CodeIgniter和Datamapper来映射模型/关系

然而,DataMapper要求表格采用特定格式才能工作,Django使用App名称作为表格中的前缀,以不同的方式映射表格。我尝试过使用前缀& data_pper中的join_prefix vars但仍未正确映射它们。

有没有人使用过这种组合?如果是这样,如何解决db表名称不一致的问题?有没有什么可以用来让它们一起工作?

----编辑:关于后端的澄清--- 让我澄清一下:我将从指向python ready服务器的子域运行管理员。但是我无法将主域名从仅限php的网络服务器移动,因为该公司已经拥有某些约束/绑定合同。并且由于seo目的,不想使用隐藏/屏蔽。

我正在使用django管理员,因为我正在使用一些软件包来制作一个漂亮/功能性的管理员,例如管理员模板的grappelli,以及用于编辑新闻故事的编辑器等,还使用photologue来管理照片/画廊。等

3 个答案:

答案 0 :(得分:0)

如果您的问题只是让Django使用与其他软件相同的表格,请使用模型中的db_columndb_table参数。

http://www.djangoproject.com/documentation/models/custom_columns/

答案 1 :(得分:0)

两个明显的解决方案:

  1. 不是黑客攻击其中一个或两个,而是在PHP / CodeIgniter代码中模拟Django管理员。 **
  2. 获取支持Django的服务器。在Django做前端。
  3. 在时间方面,这些解决方案中的任何一个都不会比使用不同编程语言将两个不同的框架很好地融合在一起。我无法想象为确保永久兼容性和互操作性所需的未来维护。

    另外,我假设说:

      

    我为使用Django作为管理员后端的网站创建了一个数据库

    你的意思是你使用Django建模你的应用程序,并且你还打算在Django管理员中管理由此建模产生的数据库。 (在这种情况下,您已经完成了模型层,并且应该尝试在Django中构建网站的其余部分)

    如果是这种情况,那么在您的模型中,您将需要定义DataMapper期望的确切列名(db_column),以及手动定义表名(db_table),包括M2M表。

    如果DM需要不同的名称,您可能还需要手动定义所有主键。

    此外:

    如果服务器无法支持Python, 您将在哪里运行后端 ?不同服务器?本地?这个计划没有多大意义。

    **我不建议尝试这个。在我了解Django的管理员之前,我一直在尝试创建一个CI后端,它实际上与Django的管理员有很多相同的想法。当然,一旦发现Django,我立即放弃了CI工作,并继续发现我发现的更加惊人的框架,开发速度要快得多。

答案 2 :(得分:0)

据我所知,您计划使用Django只是因为django-admin,并且您正在尝试将CI用于实际站点,因为服务器运行PHP,对吧?

那么为什么不使用生成类似Django管理员的框架,但是你可以在你的服务器上运行?

Symfony Framework有一个非常好的admin generator,本着Django的精神,你可以在你的服务器上运行它。这样可以避免在@ jonwd7回答

之后可能出现的维护噩梦