0

Djangoを管理バックエンドとして使用して実行しているサイトのデータベースを作成しました。ただし、サイトがホストされているサーバーはPythonをサポートできないため、PHPでフロントエンドを実行する必要があることに気付き、モデル/関係をマッピングするためにDatamapperと一緒にCodeIgniterを使用することにしました。 。

ただし、DataMapperが機能するには、テーブルが特定の形式である必要があり、Djangoは、テーブルのプレフィックスとしてアプリ名を使用して、テーブルを異なる方法でマップします。datamapperでprefix&join_prefix変数を使用しようとしましたが、それでも正しくマップされません。

誰かがこれを組み合わせて使用​​しましたか?もしそうなら、dbテーブル名が矛盾する問題をどのように修正しましたか?それらを一緒に動作させるために使用できるものはありますか?

----編集:バックエンドの説明---明確にしましょう:Python対応サーバーを指すサブドメインから管理者を実行します。ただし、会社が取得した特定の制約/バインディング契約のため、メインドメイン名をphpのみのWebサーバーから移動することはできません。また、seoの目的でクローキング/マスキングを使用したくありません。

django管理者を使用しているのは、管理者テンプレート用のgrappelliや、ニュース記事を編集するためのエディターなど、写真やギャラリーを管理するためにフォトログを使用するなど、かなり機能的な管理者を作成するためにいくつかのパッケージを使用しているためです。等

4

3 に答える 3

0

問題が単にDjangoに他のソフトウェアと同じテーブルを使用させることである場合は、モデルのパラメーターdb_columnとパラメーターを使用してください。db_table

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

于 2010-03-25T17:54:16.840 に答える
0

2つの明らかな解決策:

  1. 一方または両方をハッキングして相互にうまく機能させる代わりに、PHP/CodeIgniterコードでDjango管理者をエミュレートします。****
  2. Djangoをサポートするサーバーを入手してください。Djangoでフロントエンドを作成します。

時間的には、これらのソリューションのいずれかは、異なるプログラミング言語を使用して2つの異なるフレームワークをうまく組み合わせるよりも複雑ではありません。永続的な互換性と相互運用性を確保するために必要な将来のメンテナンスを想像することはできません。

また、私は言うことによって仮定します:

管理バックエンドとしてDjangoを使用して実行しているサイトのデータベースを作成しました

これは、Djangoを使用してアプリをモデル化したこと、およびDjango管理者でこのモデル化の結果として作成されたデータベースを管理することも意図していることを意味します。(この場合、すでにモデルレイヤーが完成しているので、Djangoでサイトの残りの部分を構築してみてください)

その場合、モデルではdb_column、DataMapperが予期する正確な列名()を定義する必要があります。またdb_table、M2Mテーブルを含むテーブル名()を手動で定義する必要があります。

DMが別の名前の名前を期待している場合は、すべての主キーを手動で定義する必要がある場合もあります。

また:

サーバーがPythonをサポートできない場合、バックエンドをどこで実行しますか?別のサーバー?ローカルで?この計画はあまり意味がありません。

**これを試すことはお勧めしません。私は、Djangoの管理者について知る前に、実際にDjangoの管理者と同じアイデアの多くを共有するCIバックエンドを作成しようとしていました。そしてもちろん、Djangoを発見したら、すぐにCI作業を中止し、開発がはるかに高速な、はるかに素晴らしいフレームワークであることがわかったものを続行しました。

于 2010-03-25T18:01:17.703 に答える
0

だから私が理解しているように、あなたはdjango-adminのためにDjangoを使用することを計画しており、サーバーがPHPを実行しているため、実際のサイトにCIを使用しようとしています。

では、Djangoの管理者のようなものを生成するが、サーバー上で実行できるフレームワークを使用してみませんか?

Symfony Frameworkには、Djangoの精神に基づいた、非常に優れた管理ジェネレーターがあり、サーバー上で実行できる可能性があります。これにより、@jonwd7が回答したときに後で発生する可能性のあるメンテナンスの悪夢からあなたを救うことができます。

于 2010-03-25T18:16:29.093 に答える