Django-单击收藏夹链接后重定向到视图

问题描述 投票:0回答:1

在我的应用中,我想创建喜欢的系统:

  • 用户输入网址
  • 某些数据已计算
  • 然后用户可以将此链接添加到收藏夹

单击添加后,用户将重定向到其他端点,该端点将返回其所有收藏夹链接。在这一点上,我想添加一种可能性,允许用户单击其收藏夹之一,返回到其他视图并计算一些数据。

我的views.py

def home(request):
    """this function returns form which allows user to input link"""
    if request.method =='POST'
        url = request.POST['url']
        request.session['url'] = url
        return redirect('bokeh')
    return render(request,'base.html')

此后,返回bokeh.html并包含一些数据,例如图表

def bokeh(request):
    url = request.session.get('url')
    cl = CalculationLogic()
    return cl.get_data_from_url(request,url)

在此视图中,有一个允许添加到收藏夹的按钮。单击后,将调用方法:

def favorites(request):
    url = request.session.get('url')
    repo = Repository(url=url,user=request.user)
    repo.save()
    repo.repositorys.add(request.user) #adding value to ManyToMany field
    user = User.objects.get(username=request.user.username)
    repos = user.users.all() #return all url which current user has in favorites
    return render(request,'favorites.html',{'repos':repos})

还有我的favorites.html

{% extends 'bokeh.html' %}

{% block content %}

<h1>Favorites repositorys for {{ user }}</h1>
{% for r in repos %}
    <br><a href="{% url 'bokeh' %}">{{ r }}</a>
{% endfor %}

{% endblock %}

因此,在这一点上,我将显示用户喜欢的所有回购。单击其中之一后,我想返回到[[bokeh view,并根据单击的URL返回不同的数据。有没有简单的方法可以解决此问题?

python django view parameter-passing
1个回答
1
投票
{% for r in repos %} <br><a href="{% url 'bokeh' %}?repo_id={{r.id}}">{{ r }}</a> {% endfor %}

然后在views.py中,类似:

def bokeh(request):
    repo = request.GET.get('repo_id')
    ...
© www.soinside.com 2019 - 2024. All rights reserved.