【问题标题】:Django multiple views one modelDjango 多视图一个模型
【发布时间】:2019-02-07 15:07:15
【问题描述】:

我尝试在用户配置文件中创建类似子页面的内容。

我尝试创建它,因为我认为将所有内容(活动流、用户照片、wideo 等)放在一个页面中并不是一个好主意。

我有一个模型的多个视图,例如:

def userprofile(request, username):
    user = User.objects.get(username=username)
    context = locals()
    template = 'auth/user_detail.html'
    feeds = feed_manager.get_user_feed(user.id)
    activities = feeds.get('user')['results']
    activities = enricher.enrich_activities(activities)
    user_from = len(Follow.objects.filter(user_from=user))
    target = len(Follow.objects.filter(target=user))
    current_user_following = Follow.objects.filter(user_from=request.user, target=user)
    args = {"user": user, "target": target,
            "current_user_following": current_user_following,
            "activities": activities}
    return render(request, template, args)

def userabout(request, username):
    user = User.objects.get(username=username)
    return render(request, 'auth/about.html',
                {'user': user})

def userphotos(request, username):
    user = User.objects.get(username=username)
    return render(request, 'auth/photos.html',
                {'user': user})

在网址上:

path('users/<username>/', views.userprofile, name='userdetail'),
path('users/<username>/about/', views.userabout, name='userabout'),
path('users/<username>/photos/', views.userphotos, name='userphotos'),
path('users/<username>/video/', views.uservideo, name='userphotos'),

当我使用以下用户名键入此链接时:localhost:8000/account/users/Maciej/about/ 那么这很好用。但我不知道如何在模板中链接它。

我尝试&lt;a href="{% url 'userabout' %}"&gt;About me&lt;/a&gt;,然后出现错误“No reversMatch”。

我是初学者,也许有更好的选择来做到这一点?或者链接这个。

【问题讨论】:

    标签: django python-3.x django-models django-views


    【解决方案1】:

    您需要将用户名作为参数提供给模板标签。例如:

    <a href="{% url 'userabout' user.username %}">About me</a>
    

    【讨论】:

      猜你喜欢
      • 2020-04-09
      • 1970-01-01
      • 2017-11-23
      • 1970-01-01
      • 2011-01-14
      • 1970-01-01
      • 2012-04-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多