Я использую django (2, 1, 5, 'final', 0).
Моя проблема, я пытаюсь сохранить модель адреса в postgresql, все остальные модели (аутентификация, продукты ... ) в движке mongodb с пакетом djongo. модели, хранящиеся в app => geolocalise:
class Address(models.Model):
line1 = models.CharField(max_length=150)
line2 = models.CharField(max_length=150, blank=True)
postalcode = models.CharField(max_length=10)
city = models.CharField(max_length=150)
country = models.CharField(max_length=150, default="France")
#the postgis entry
location = models.PointField(null=True)
latitude = models.FloatField( default=0)
longitude = models.FloatField( default=0)
description = models.TextField(max_length=1024,blank=True)
#user = models.ForeignKey('User', related_name='user', on_delete=models.CASCADE)
def __str__(self):
return "{0} - {1} - {2}".format(self.line1, self.postalcode, self.city)
здесь мои настройки py
DATABASES = {
'default': {
'ENGINE': 'djongo',
'NAME': 'DBNAME',
'USER': 'USER',
'PASSWORD': 'PASSWORD'},
'postgresql': {
'ENGINE': 'django.contrib.gis.db.backends.postgis',
'NAME': 'DBNAME',
'USER': 'USER',
'PASSWORD': 'PASSWORD'}}
Но когда я выполняю свои миграции, я не знаю, почему база данных хранится в mongodb.
Я попробовал конфигурацию в router.py, которую я нашел в stackoverflow, но она не работает:
class GeolocaliseRouter(object):
def db_for_read(self, model, **hints):
"""
Attempts to read auth models go to auth_db.
"""
if model._meta.app_label == 'geolocalise':
return 'postgresql'
return None
def db_for_write(self, model, **hints):
"""
Attempts to write auth models go to auth_db.
"""
if model._meta.app_label == 'geolocalise':
return 'postgresql'
return None
def allow_relation(self, obj1, obj2, **hints):
"""
Allow relations if a model in the auth app is involved.
"""
if obj1._meta.app_label == 'geolocalise' or \
obj2._meta.app_label == 'geolocalise':
return True
return None
def allow_migrate(self, db, app_label, model_name=None, **hints):
"""
Make sure the auth app only appears in the 'auth_db'
database.
"""
if app_label == 'geolocalise':
return db == 'postgresql'
return None
Я протестировал несколько конфигураций, но в любое время я выполняю миграциюмодель находится в mongodb или все модели моего проекта идут в postgresql ....
Я новичок в django и благодарю вас за любую помощь