将django用户链接到站点框架中的特定站点

时间:2017-03-29 03:24:11

标签: django python-3.x sites django-sites

我在我的项目中设置了Django站点框架, 实际上,我想将Django用户与该特定网站结合起来

我想要实现的是,当用户从注册到网站框架的特定网站或子网站注册时,该用户必须链接到该特定网站,以便我们可以限制用户使用其关联网站凭据登录到另一个网站

2 个答案:

答案 0 :(得分:1)

在不同网站的设置文件中,您可以指定单独的“用户”数据库https://docs.djangoproject.com/en/1.10/topics/db/multi-db/

#in site1 settings.py
DATABASES = {
    'default': {
        'NAME': 'app_data',
        'ENGINE': 'django.db.backends.mysql',
        'USER': 'mysql_user',
        'PASSWORD': 'priv4te'
    },
    'users': {
        'NAME': 'user_data_site1',
        'ENGINE': 'django.db.backends.mysql',
        'USER': 'mysql_user',
        'PASSWORD': 'priv4te'
    }
}

#in site2 settings.py
DATABASES = {
    'default': {
        'NAME': 'app_data',
        'ENGINE': 'django.db.backends.mysql',
        'USER': 'mysql_user',
        'PASSWORD': 'priv4te'
    },
    'users': {
        'NAME': 'user_data_site2',
        'ENGINE': 'django.db.backends.mysql',
        'USER': 'mysql_user',
        'PASSWORD': 'priv4te'
    }
}

答案 1 :(得分:0)

根据https://docs.djangoproject.com/en/1.10/ref/contrib/sites/

我们绑定模型 `

from django.db import models
from django.contrib.sites.models import Site

class Article(models.Model):
    headline = models.CharField(max_length=200)
    # ...
    site = models.ForeignKey(Site, on_delete=models.CASCADE)

`

所以,如果我们为不同的网站使用不同的数据库,则没有任何意义,因为网站表也会针对不同的网站进行更改

我需要一个数据库但是根据网站使用外键

来区分用户