在我的应用中,我想创建喜欢的系统:
单击添加后,用户将重定向到其他端点,该端点将返回其所有收藏夹链接。在这一点上,我想添加一种可能性,允许用户单击其收藏夹之一,返回到其他视图并计算一些数据。
我的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返回不同的数据。有没有简单的方法可以解决此问题?
{% 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')
...