Ich habe Probleme bei der Konfiguration von Django Tenant und Django Guardian. Ich möchte Benutzer nach Schema trennen. Wo sollte ich Guardian einstellen und wie sollte ich es konfigurieren? Bis jetzt habe ich auch versucht, es von TENANT_APP zu SHARED_APP zu wechseln (ich bekomme einen anderen Fehler, der etwas mit anderen Voraussetzungen zu tun hat, auth) und ich bekomme einen Fehler (unten). Eine Alternative, die gut anstelle des Vormunds funktioniert, würde auch geschätzt werden.Django Mieter und Django Guardian Konfiguration settings.py
SHARED_APPS = (
'tenant_schemas',
'myapp.clients',
'django.contrib.contenttypes',
'django.contrib.staticfiles',
)
TENANT_APPS = (
'django.contrib.contenttypes',
'custom_user',
'myapp.users',
'oauth2_provider',
'corsheaders',
'django.contrib.auth',
'django.contrib.admin',
'guardian',
'django.contrib.staticfiles',
'myapp.accounting',
'myapp.budget',
'myapp.enterprise',
'myapp.payables',
'myapp.receivables',
'rest_framework_nested',
'solo',
'rest_framework_swagger',
)
Dies ist der Fehler, den ich bekomme, wenn ich Python manage.py migrate_schemas laufen:
relation "users_user" does not exist
LINE 1: ..."."phone_number", "users_user"."email2" FROM "users_coo...
Dies geschieht so schnell, wie ich 'Hüterin' in TENANT_APPS
und wenn ich es zugeben in SHARED_APPS ich diese:
psycopg2.ProgrammingError: relation "auth_group" does not exist
dies kann aber mit django.contrib.admin fixiert werden, das Problem ist, dass ich mag meine Mieter Anwendungsberechtigungen
Zusätzliche Konfiguration um genau zu sein:
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
'oauth2_provider.ext.rest_framework.OAuth2Authentication',
),
'DEFAULT_FILTER_BACKENDS': (
'rest_framework.filters.DjangoFilterBackend',
),
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework.permissions.IsAuthenticated',
)
}
AUTHENTICATION_BACKENDS = (
'django.contrib.auth.backends.ModelBackend',
'guardian.backends.ObjectPermissionBackend',
)
im Protokoll der Suche fand ich heraus, dass django Vormund einen anonymen Benutzer
File "/home/myaccount/workspace/enterprise-api/venv/lib/python3.4/site-packages/django/dispatch/dispatcher.py", line 192, in send
response = receiver(signal=self, sender=sender, **named)
File "/home/myaccount/workspace/enterprise-api/venv/lib/python3.4/site-packages/guardian/management/__init__.py", line 33, in create_anonymous_user
User.objects.get(**lookup)
File "/home/myaccount/workspace/enterprise-api/venv/lib/python3.4/site-packages/django/db/models/manager.py", line 122, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/home/myaccount/workspace/enterprise-api/venv/lib/python3.4/site-packages/django/db/models/query.py", line 381, in get
num = len(clone)
File "/home/myaccount/workspace/enterprise-api/venv/lib/python3.4/site-packages/django/db/models/query.py", line 240, in __len__
self._fetch_all()
File "/home/myaccount/workspace/enterprise-api/venv/lib/python3.4/site-packages/django/db/models/query.py", line 1074, in _fetch_all
self._result_cache = list(self.iterator())
Gibt es eine Möglichkeit schafft dem Vormund mitteilen, auf eine Mieterdatenbank zu warten?