我正在使用django 1.7构建我的第一个站点,并且很难弄清楚如何将变量从点击传递到视图.我的GET也是空的.
我的模板有一个带有Facebook帐户ID的表格,点击后应显示用户管理员的Facebook页面列表.
我的模板:
{% for SocialAccount in accountlist %}
<tr>
<td><a href="{% url 'INI:fbpages' %}">{{ SocialAccount.uid }}</a></td>
<td>{{ SocialAccount.extra_data.first_name }}</td>
<td>{{ SocialAccount.extra_data.last_name }}</td>
<td>{{ SocialAccount.extra_data.email }}</td>
</tr>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
和我的观点:
def fbpages(request, fbuser):
djuser = request.user.id
context = RequestContext(request)
fbuser = 1234634
pagelist = facebook.pages(request, djuser, fbuser)
blocks = {'title': 'Facebook Pages',
'pagelist': pagelist}
return render(request, "initiative/ListFBPages.html", blocks)
Run Code Online (Sandbox Code Playgroud)
如果我将ID放在URL中但我不想在URL中公开页面/用户ID,我可以轻松地做到这一点.我觉得这是一个简单的解决方案,但我还没弄清楚.
谢谢你的帮助.
JJK*_*JJK 32
您只能通过4种不同的方法从模板向Django视图发送数据.在您的情况下,如果您不想要URL中的信息,您可能只能使用选项1和4.
由于我是StackOverflow的新手,因此我无法发布超过2个链接,因此如果您搜索以下帖子,您将找到有关每种方法的优缺点的更多信息.
"什么是在django中将变量从模板传递到视图的更有效方法"
1.发布
所以你会提交一份有价值的表格.
# You can retrieve your code in your views.py via
request.POST.get('value')
Run Code Online (Sandbox Code Playgroud)
2.查询参数
所以你会传递// localhost:8000 /?id = 123
# You can retrieve your code in your views.py via
request.GET.get('id')
Run Code Online (Sandbox Code Playgroud)
3.从URL(参见此处)
所以你会传递// localhost:8000/12/results /
# urls.py
urlpatterns = patterns(
...
url(r'^(?P<question_id>\d+)/results/$', views.results, name='results'),
...
)
Run Code Online (Sandbox Code Playgroud)
并在你的意见......
# views.py
# To retrieve (question_id)
def detail(request, question_id):
...
return HttpResponse("blahblah")
Run Code Online (Sandbox Code Playgroud)
4.会话(通过cookie)
使用会话的缺点是你必须将它传递给视图或提前设置它.
https://docs.djangoproject.com/en/1.7/topics/http/sessions/
# views.py
# Set the session variable
request.session['uid'] = 123456
# Retrieve the session variable
var = request.session.get['uid']
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
35444 次 |
最近记录: |