小编Ric*_*alk的帖子

Django:类视图缺少属性COOKIES

我目前正在玩REST和backbone.js并遇到了这个问题:

'LoginView' object has no attribute 'COOKIES'
Run Code Online (Sandbox Code Playgroud)

以下代码可能导致了问题.我已经在javascript中注释了一些内容,因为我希望它直接加载到服务器上,但我认为将它带到一起会很好.

我还可以补充一点,我已经检查了表单中的csrf-token,它就在那里.

views.py

class LoginView(TemplateView):
    authentication_form=LoginForm
    form_class = LoginForm
    redirect_field_name=REDIRECT_FIELD_NAME
    template_name = 'front/login.html'
    initial = {'key': 'value'}

    def get(self, request, *args, **kwargs):
        form = self.form_class(initial=self.initial)
        return render(request, self.template_name, {'form': form})

    @method_decorator(sensitive_post_parameters())
    @csrf_protect
    @never_cache
    @api_view(['GET', 'POST'])
    def post(self, request, *args, **kwargs):
        form = self.form_class(request.POST)
        print request.COOKIES('csrftoken')
        print request.POST.get('csrfmiddlewaretoken')
        if form.is_valid():
            #if not is_safe_url(url=redirect_to, host=request.get_host()):
            #   redirect_to = resolve_url(settings.LOGIN_REDIRECT_URL)
            print request.POST.get('email')
            #user = self.get_user(request.POST.get('email'))
            #print user
            #auth = UserDataAuthentication(request, user)
            user = authenticate(email=request.POST.get('email'), password=request.POST.get('password'))
            if …
Run Code Online (Sandbox Code Playgroud)

python django cookies backbone.js

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

Django:将视图中的日期时间设置为utc + 1

我已经检查了一下,无论是在这里还是谷歌,都没有找到我正在寻找的确切答案.

我目前正在开发一个Django项目,我似乎生活在其中一个时区概念不被高度重视的领域.这里的时区是CEST,替代方案:UTC + 1,但都不能在我的设置文件中设置.我一直在寻找如何改变它,另一种方法是下载并包含一个库,应该做一些调整,经过一些调整.但我想知道是否有更顺畅,更快捷的方式来做到这一点.

date = datetime.datetime.now()给了我两个小时前的时间.我既可以使用UTC也可以使用GMT,但两者都不够接近.

python django timezone datetime

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

Django-forms的问题:'WSGIRequest'对象没有属性'get'

我在Django调试视图中收到此错误:

'WSGIRequest' object has no attribute 'get'
Run Code Online (Sandbox Code Playgroud)

这是一个登录脚本,大多数是从管理代码复制的,主要是为了练习/调整原因.我在views.py中的代码如下:

@sensitive_post_parameters()
@csrf_protect
@never_cache
def login(request, template_name="main/login.html",
          authentication_form=LoginForm,
          redirect_field_name=REDIRECT_FIELD_NAME,
          current_app=None, extra_context=None):
    """
    Displays the login form and handles the login action.
    """
    redirect_to = request.REQUEST.get(redirect_field_name, '')

    if request.method == "POST":
        form = authentication_form(request, data=request.POST)
        if form.is_valid():

            # Ensure the user-originating redirection url is safe.
            if not is_safe_url(url=redirect_to, host=request.get_host()):
                redirect_to = resolve_url(settings.LOGIN_REDIRECT_URL)

            # Okay, security check complete. Log the user in.
            user = get_user(request.POST.get('email'))
            auth_login(request, user)

            return HttpResponseRedirect(redirect_to)
    else:
        form = authentication_form(request)
    current_site = …
Run Code Online (Sandbox Code Playgroud)

python forms django get

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

来自jQuery $ .post的PHP SESSION

我已经阅读了很多关于这个问题的文章,无论是在这里还是其他地方,都没有找到可以帮助我的答案.由于主题似乎相当广泛,我认为最好的方法是提问.

我目前通过jquery文件中的$ .post脚本将表单中的登录数据发送到php脚本.没有问题.我有一个类,它通过一系列函数来验证和保护字符串,所以没有任何问题.我一直设置会话,我可以通过向$ .post添加函数(数据)打印出来.

我已将session_start()添加到php-script和index.php.我正在使用Chromium并且可以看到已经设置了一个会话,但是当我创建一个print_r($ _ SESSION)时; 它出来了.显然,这也导致我的if(isset($ _ SESSION ['uid']))也不起作用.

JS:

$('#login').submit(function(e){
    e.preventDefault();
    values = {};
    var url = '../admin/php/signIn.php';
    console.log('Clicked on submit.');
    $.each($(this).serializeArray(), function(i, field){
        values[field.name] = field.value;
    });
    $.post(url, {username: values.username, password: values.password})
    .done(function(data){ location.reload(); /*alert(data);*/ })
    .fail(function(){ alert('Fail.'); });
});
Run Code Online (Sandbox Code Playgroud)

PHP:

private function login($uid, $uname){
    $_SESSION['uid'] = $uid;
    echo $_SESSION['username'] = $uname;
    session_start();
}
Run Code Online (Sandbox Code Playgroud)

我在其中一个会话中添加了一个echo,只是为了能够通过jquery看到它.问题是"私人功能[...]"还是其他地方?(正如我之前所说的,参加课程.)

我希望这对某人有意义,因为我在这里迷失了.

php session jquery .post

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

标签 统计

django ×3

python ×3

.post ×1

backbone.js ×1

cookies ×1

datetime ×1

forms ×1

get ×1

jquery ×1

php ×1

session ×1

timezone ×1