2011-11-07 32 views
0

新手Django的问题Django的配置文件:如何从当前用户

我使用Django的配置文件来显示配置文件列表,使用profiles.views.profile_list观点,与个人不同用户编辑个人资料配置文件,使用profiles.views.profile_detail。

对于每个单独的配置文件,我只想添加一个链接来编辑配置文件,只要该配置文件对应于当前用户。我的第一个尝试是:

(...) 
{% block content %} 
<p>Profile detail info for {{ user }} </p> 
<ul> 
    <li>{{ user.username }} 

     {% if user.is_authenticated %} 
     <a href="{% url profiles_edit_profile user.username %}">edit</a> 
     {% endif %} 

    </li> 
    <li>{{ user.get_profile.url }}</li> (...) 

但后来我打了明显的问题:edit_profile是为了编辑当前用户配置文件,因此并不需要用户名/ id作为参数,Django的无法逆转的URL,因为在事实上,我没有一个URL来编辑一个指定的用户的个人资料。

这里最好的策略是什么?将配置文件应用复制到我的项目中并添加指定的用户编辑配置文件视图?或者有没有办法做到这一点,而不必拥有应用程序的本地项目副本 - 我想这会更可取?

感谢

回答

0

edit_profile观点已经强制执行正在编辑的配置文件是当前用户的个人资料。你不需要传递任何参数:

(...) 
{% block content %} 
<p>Profile detail info for {{ user }} </p> 
<ul> 
    <li>{{ user.username }} 

     {% if user.is_authenticated %} 
     <a href="{% url profiles_edit_profile %}">edit</a> 
     {% endif %} 

    </li> 
    <li>{{ user.get_profile.url }}</li> (...) 
+0

是的,这是正确的,谢谢,我没有想好它通过:) – xuloChavez

相关问题