Ich möchte eine Django-Anwendung bereitstellen, die mehrere Websites mit einer einzigen Datenbank, aber unterschiedlichen Benutzersätzen bedient. Denke wie eine Blog-Anwendung, sie wird von mehreren Domains mit unterschiedlichen Themen verwendet, verwendet aber die gleiche Datenbank, indem sie ein Site-Feld zu Modellen hinzufügt.Django 1.7 Multisite Benutzermodell
Ich verwende Django's SitesFramework für diesen Job. Aber das Problem ist, ich konnte Benutzermodelle für verschiedene Sites nicht trennen. Ich möchte dasselbe Benutzermodell mit einem Site-Feld und einem E-Mail-Feld verwenden, das pro Site eindeutig ist.
Ich versuchte AbstractUser
Modell so zu erweitern:
from django.contrib.auth.models import AbstractUser
from django.contrib.sites.models import Site
from django.contrib.sites.managers import CurrentSiteManager
class Member(AbstractUser):
username = None
site = models.ForeignKey(Site)
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = []
on_site = CurrentSiteManager()
class Meta:
unique_together = ('site', 'email')
Aber gibt diesen Fehler: 'Member.email' must be unique because it is named as the 'USERNAME_FIELD'.
Was ist die beste Praxis für dieses Problem?
Mit ein paar Fixes funktionierte das für mich. Hier ist mein letzter Code: https://gist.github.com/muratcorlu/1ad61a43d4836d5b1227 Danke! –