Джанго несколько просмотров одной модели - PullRequest
0 голосов
/ 07 февраля 2019

Я пытаюсь создать что-то похожее на подстраницы в профиле пользователя.

Я пытаюсь создать это, потому что я думаю, что помещать все (поток активности, фотографии пользователей, видео и т. Д.) На одной странице, это не очень хорошая идея.

У меня есть несколько представлений с одной моделью, например:

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})

и URL:

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 / тогда это работает хорошо.Но я не знаю, как связать это в шаблоне.

Я пытаюсь <a href="{% url 'userabout' %}">About me</a>, а затем появляется сообщение об ошибке "No reversMatch".

Я новичок, может быть, есть лучший способ сделать это?Или связать это.

1 Ответ

0 голосов
/ 07 февраля 2019

Вам необходимо указать имя пользователя в качестве аргумента тега шаблона.Например:

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