2010-06-25 29 views
5

Paralel olarak çalışması ve farklı şeyler yapması gereken iki farklı Django projem var. İki django projesi arasında veritabanı tablosu paylaşımı

ortak bir veritabanı tablosu, Müşteri tablosu paylaşmaya ihtiyaç Ancak

..

Her iki proje

emin değilim .. o İstemci modeline eşleştirilmiş yabancı anahtarlar içeren gerekiyor birden çok uygulama içeriyor En iyi yaklaşım ne olurdu?

cevap

4

Maalesef çoklu veritabanları için Django'nın destek değil destek cross-database relations yapar. Bunu sistemlerden birinde gerçekleştirebilirsiniz (yani, başvurulan tabloya sahip olmalısınız, ancak ana referansları kendiniz halledebilirsiniz), ancak uygulamada referans bütünlüğünü sağladığınızdan emin olmak için ne yaptığınızı belgelemek için çok dikkatli olmanız gerekir. onu 'taklit'.

+0

Q & A'dan 4+ yıl sonra gelip konuşmaya hiçbir şey eklemeden cevabı düşürdüğümde her zaman onu seviyorum. Anonim Kuklacılığa Not: Cevabımdaki bağlantıyı takip ederseniz, bunun Django Dev'de hala geçerli olduğunu görürsünüz ve size açıkça söylerler. Hatta 'sahte' kelimesinin etrafındaki korkak tırnakları bile kullanırlar. –

+3

Sizi hayal kırıklığına uğratmadım ama sanırım soru, iki farklı projede bir veritabanının paylaşılmaya çalışılması olarak yorumlanabilir. Veritabanları arası ilişkilerle ilintili değildir. Bir başkasının asıl soruyla ilgisiz bir şeyden hoşlandığı zaman onu seviyorum. –

5

Her iki projenin de aynı db üzerinde çalıştığını varsayarak, başvurmak istediğiniz modeli içe aktarın.

from first_project.some_app.models import Client, OtherSharedModel 

class SomeModelInSecondProject(models.Model): 
    client = models.ForeignKey(Client) 
0

Denemedim, ancak aynı db'yi paylaşıyor ve aynı sunucuda iki projeye sahipseniz, başka bir alternatif, bunları yalnızca bir projede birleştirmek, uygulamalarını farklı dizinlerde düzenlemek ve gerekirse iki farklı ayar dosyası kullanabilirsiniz. Bununla ilgili şu soruya bakınız: How to keep all my django applications in specific folder. Bu sadece farklı bir projeye başvurmanızı gerektirmeyen farklı bir yaklaşımdır (bunun ne kadar tavsiye edilebilir olduğundan emin değilim).

İlgili konular