小编Bri*_*ead的帖子

django-allauth,我怎么才能允许通过社交注册/登录?

我只想让人们注册或使用他们的社交帐户登录.我有社交注册并登录工作,但我无法弄清楚如何禁用本地注册.

我已经阅读了文档,这听起来很接近我想要的

ACCOUNT_FORMS (={})
    Used to override forms, for example: {‘login’: ‘myapp.forms.LoginForm’}
Run Code Online (Sandbox Code Playgroud)

看起来我可以创建一个新的注册表单,只包含社交日志链接,但我希望有更容易的方式,我忽略.我仍然对这一切都很陌生,所以我往往会错过很多明显的事情.

我也尝试将下面的代码更改为False,但这也禁用了社交注册.

allauth.account.adapter.py

def is_open_for_signup(self, request):
    """
    Checks whether or not the site is open for signups.

    Next to simply returning True/False you can also intervene the
    regular flow by raising an ImmediateHttpResponse
    """
    return True
Run Code Online (Sandbox Code Playgroud)

python django django-allauth

5
推荐指数
2
解决办法
1850
查看次数

Bad Request(400)使用Django,Heroku和Name.com

我刚刚用Heroku部署了我的Django网站,它在example.herokuapp.com上工作就好了.

我遇到的问题是当我去example.com时,我得到Bad Request(400).我查看了有关400个错误的Django文档,我似乎无法弄清楚什么是错误的.

我正在使用Django 1.9.5并使用cookiecutter-django启动该项目.Name.com是我的域名注册商.

我的设置的production.py:

ALLOWED_HOSTS = env.list('DJANGO_ALLOWED_HOSTS', default=['example.com'])
Run Code Online (Sandbox Code Playgroud)

我不是100%确定我的ALLOWED_HOSTS的DJANGO_ALLOWED_HOSTS部分是如何工作的,但是当我去我的Heroku仪表板并查看设置中的配置变量时,我看到DJANGO_ALLOWED_HOSTS是.herokuapp.com

Heroku自定义域名:

Domain Name            DNS Target
*.example.com          example.herokuapp.com
example.com            example.herokuapp.com
www.example.com        example.herokuapp.com
Run Code Online (Sandbox Code Playgroud)

Name.com DNS记录:

Type   Host             Answer                 TTL  Prio
CNAME  www.example.com  example.herokuapp.com  300  N/A
CNAME  example.com      example.herokuapp.com  300  N/A
CNAME  *.example.com    example.herokuapp.com  300  N/A
Run Code Online (Sandbox Code Playgroud)

在控制台中,我输入我得到的主机命令:

$ host www.example.com
www.example.com is an alias for example.herokuapp.com

$ host example.com
example is an alias for example.herokuapp.com
Run Code Online (Sandbox Code Playgroud)

我可以找到大多数答案/论坛指向这3个地方,以找到错误,ALLOWED_HOSTS,Heroku自定义域和DNS记录.但我无法发现错误.

我发现的一条建议是要检查网站的其他区域.无论我走到哪里都会得到同样的错误,例如example.com/about/

我需要在name.com上设置其他内容吗?

python django dns heroku cookiecutter

4
推荐指数
1
解决办法
2207
查看次数

使用Django,我如何将我的模型的ForeignKey添加到CreateView?

我正在创建一个应用程序,允许人们设置可能跨越多天的教学事件.这是我的一些代码:

楷模:

class Event(models.Model):
    event_name = models.CharField('Event Name', max_length=200)
    short_description = models.TextField('Short Description', max_length=140)

class EventDay(models.Model):
    event = models.ForeignKey(Event)
    day_name = models.CharField(max_length=30)
    start_time = models.DateTimeField('Starting Date and Time')
    end_time = models.DateTimeField('Estimate Ending Time')
Run Code Online (Sandbox Code Playgroud)

查看

from .models import Event, EventDay

class EventCreate(LoginRequiredMixin, CreateView):
    model = Event
    fields = ['event_name', 'short_description']
Run Code Online (Sandbox Code Playgroud)

在我添加活动的管理员中它完美运行,允许我根据需要添加多少天.但是,在管理员之外添加页面的事件只显示来自Event的字段,而不是EventDay.

我知道我的Views代码看起来有点空,只要与EventDay有关.但是,在发布之前,我尝试了许多不同的东西,我想到尝试获取像管理页面一样工作的字段.我只是遗漏了我在这里尝试过的烂摊子.我也在文档中找不到任何关于我出错的地方.

我没有包含我的模板/网址代码,因为我不认为这是问题所在.我可以再次添加事件,而不是EventDay部分.但是我对这一切都是新手所以如果你需要我发布更多代码我会的.

python django foreign-keys django-generic-views

1
推荐指数
1
解决办法
1951
查看次数