0

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

然而,DataMapper 要求表采用特定格式才能工作,而 Django 以不同的方式映射其表,使用 App 名称作为表中的前缀。我尝试在 datamapper 中使用前缀和 join_prefix 变量,但仍然无法正确映射它们。

有人用过这个组合吗?如果是这样,如何解决数据库表名不一致的问题?有什么东西可以让它们一起工作吗?

----编辑:后端澄清---让我澄清一下:我将从指向python就绪服务器的子域运行管理员。但是,由于公司自己加入了某些约束/绑定合同,我无法从仅 php 的网络服务器中移动主域名。并且由于 seo 的目的不想使用隐藏/掩蔽。

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

4

3 回答 3

0

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

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

于 2010-03-25T17:54:16.840 回答
0

两个明显的解决方案:

  1. 而不是破解一个或两个以相互很好地工作,在 PHP/CodeIgniter 代码中模拟 Django 管理员。**
  2. 获取支持 Django 的服务器。在 Django 中制作前端。

从时间上讲,这些解决方案中的任何一个都比尝试使用不同的编程语言使两个不同的框架很好地融合在一起更容易涉及。我无法想象未来需要维护以确保永久的兼容性和互操作性。

另外,我假设说:

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

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

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

如果 DM 期望名称不同,您可能还必须手动定义所有主键。

还:

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

** 我不建议尝试这个。在我了解 Django 的管理员之前,我一直在尝试制作一个与 Django 管理员有很多相同想法的 CI 后端。当然,一旦发现 Django,我就立即放弃了 CI 工作,继续使用我发现的一个更令人惊叹的框架,并且开发速度更快。

于 2010-03-25T18:01:17.703 回答
0

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

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

Symfony 框架有一个非常好的管理生成器,本着 Django的精神,你也许可以在你的服务器上运行它。这将使您免于@jonwd7 回答后可能出现的维护噩梦

于 2010-03-25T18:16:29.093 回答