【问题标题】:django url from another template than the one associated with the view-function来自另一个模板的 django url,而不是与视图功能关联的模板
【发布时间】:2011-02-25 11:51:23
【问题描述】:

嘿嘿, 例如,我有一个像这样的视图函数:

def profile_view(request, id):
    u = UserProfile.objects.get(pk=id)
return render_to_response('profile/publicProfile.html', {
    'object_list': u,

    }, 
    context_instance=RequestContext(request)) 

和网址: url(r'^profile_view/(?P\d+)/$', profile_view, name='profile_view'),

我的问题是我也想在另一个模板中使用函数的 url,例如 在博客模板中的搜索中,人们会在其中看到某些人的帖子,并且他们想导航到他们的个人资料。 搜索视图可能如下所示:

def searchn(request):
query = request.GET.get('q', '')
if query:
    qset = (
        Q(post__iexact=query) 
            )
    results = New.objects.filter(qset).distinct()
else:
    results = []
return render_to_response('news/searchn.html',{        
'results': results,
'query': query},
context_instance=RequestContext(request))

和模板:

{% 如果查询 %}

“{{ query|escape }}”的结果:

{% if results %}
  <ul>
  {% for object in results %}
    <li>{{ object.post }} <a href='../../accounts/profile_view/{{object.id}}/'>  {{ object.created_by }} </a> {{object.date}} </li> 
  {% endfor %}
  </ul>
{% else %}
  <p>No posts found</p>
{% endif %}

{% endif %}

在 created_by 中,我想放置一个指向我的用户个人资料的链接,但用户个人资料视图并未“指向”此模板。 我该怎么办? 谢谢!

【问题讨论】:

  • 如果你准确地解释你想要达到的目标,你可能会得到一个有意义的答案。
  • 是的,你是对的,我已经编辑了我的问题。谢谢!
  • 这没有帮助。你所拥有的有什么问题?据我所知,您已经创建了一个指向您的用户个人资料的链接。您究竟希望发生什么?
  • 嗨 Dana -- 你读过 www.djangobook.com 了吗?它确实可以帮助您取得进步,而不会被阻止并且不必在此处尽可能多地询问

标签: django url templates models render


【解决方案1】:

您通常不会从模板调用模型或视图函数,而是链接到 URL,然后将这些 URL 分派给视图函数。

【讨论】:

  • 我明白了,但我不能在模板中“包含”视图函数。如果我的函数视图有一个 render_to_response ('something.html'),那么我可以在该视图函数的模板变量中使用。但是,如果我想使用来自另一个具有另一个 render_to_response 的函数视图中的变量,我该如何使用它呢? (这意味着第二个函数视图的变量)。谢谢
  • 我不确定我是否完全理解您的问题。如果你有一个函数 F1 和一个模板 T1,那么 F1 的变量可以在 T1 中访问。但是,如果您有 T2 并且想要从 F1 访问变量,则无法直接访问。但是,为什么不在 F2 中定义(或查询)所需的变量(呈现给 T2)然后“正常”访问它们?
【解决方案2】:

Dana:我希望我能正确理解您的问题,但是如果您想使用来自两个“函数”的数据,您可以通过创建一个将您正在使用的两个数据字段链接在一起的模型来实现相同的方法,使用外键。

所以你有

class MyCustomModel(models.Model):
  profile = models.ForeignKey(Profile, unique=True)
  otherdata = models.CharField("Some other field", blank=True, null=True)

然后你可以调用你对这个模型的视图。

【讨论】:

  • 嗯.. 不。我刚刚编辑了我的问题,我想我第一次没有正确解释
猜你喜欢
  • 1970-01-01
  • 2012-01-13
  • 2015-02-15
  • 1970-01-01
  • 1970-01-01
  • 2017-05-21
  • 2011-11-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多