【问题标题】:link django user to perticular site in site framework将 django 用户链接到站点框架中的特定站点
【发布时间】:2017-03-29 03:24:11
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案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'
        }
    }
    

    【讨论】:

    • 这可能是个好主意,但有一个问题,请参考我的回答
    【解决方案2】:

    根据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)
    

    `

    因此,如果我们为不同的站点使用不同的数据库,那么这没有任何意义,因为站点表也会针对不同的站点发生变化

    我需要一个数据库,但使用外键根据上述模型区分用户

    【讨论】:

      猜你喜欢
      • 2012-01-16
      • 1970-01-01
      • 2010-11-04
      • 2012-05-06
      • 2011-06-24
      • 1970-01-01
      • 2017-08-08
      • 1970-01-01
      • 2017-10-24
      相关资源
      最近更新 更多