python - 无法使用 Django 和 Python 在 URL 查询字符串中传递值

标签 python django

使用 Django 和 Python 登录后,我需要在 URL 查询字符串中传递 session ID,但在我的例子中,我遇到了一些错误。我的代码如下。

def loginsave(request):
    """This function helps to login the user """

    if request.method == 'POST':
        password = request.POST.get('pass')
        uname = request.POST.get('uname')
        per = User.objects.all().filter(
            Q(password__icontains=password) & Q(uname__icontains=uname)).count()
        if per > 0:
            user = User.objects.filter(
                Q(password__icontains=password) & Q(uname__icontains=uname))
            for use in user:
                uid = use.id
                user_name = use.uname
            request.session['id'] = uid
            request.session['sess'] = dict(dt=str(datetime.now()),
                                    value='session')
            request.session['sess_id'] = 'abcd1234'
            return render(request, 'bookingservice/home.html',
                                {'count': per, 'username': user_name})
        else:
            return render(request, 'bookingservice/login.html', {})

这是我的登录功能,我正在创建 session ID,我需要通过 URL 传递它。我的菜单列表如下。

<a href="{% url 'home' %}?token={{request.session["sess_id"]}}">Home</a>
<a href="{% url 'booking' %}">Add Booking</a>
 <a href="{% url 'personal' %}">Add Personal Info</a>

我正在这样做,但在这里我收到以下错误。

Exception Value:    
Could not parse the remainder: '["sess_id"]' from 'request.session["sess_id"]'

这里我需要登录后 session ID 应该出现在每个页面 URL 上。

最佳答案

改变

{{request.session["sess_id"]}}

{{ request.session.sess_id }}

通常django的模板语言都是这样工作的。这里变量名中的点表示查找。当模板系统遇到变量名中的点时,它会按以下顺序尝试以下查找:

Dictionary lookup. Example: request.session["bar"]
Attribute lookup. Example: request.session.bar
List-index lookup. Example: request.session[bar]

您可以在 docs 找到更多信息

关于python - 无法使用 Django 和 Python 在 URL 查询字符串中传递值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45372333/

相关文章:

Python/Pandas - 当某些列表可能少于 5 个值时,如何将列表切片到前 5 个值?

python - 使用序列中的列表值创建字典的最干净(最Pythonic)的方法是什么?

python - 我可以使用 Google Appengine ndb 存储带有 key_name 的 blob 吗?

python - Django:类似于 eBay 的购物网站

python - 为反向关系查找实现 django-filter MultipleModelChoiceField?

django - DRF - 序列化多个模型

python - 如何从已分割的 .txt 文件中获取多行并将它们保存到不同的变量中

python - 该模型已经注册在/

python - 多个 csrftoken cookie,RFC 要求只有 1 个 csrftoken 吗?

python - 在 python 中模拟类上的多个方法的干净方法是什么?