每个用户具有唯一网址和用户内容的页面

时间:2018-07-25 09:38:52

标签: django django-templates django-views

我正在尝试构建一个应用程序,其中每个用户都有自己的数据库内容,但是在一个页面/ URL上列出了一些(选择的)数据库内容并公开可见。 我做了很多研究,但是无法提出逻辑。我在URL中有一个用户名,但是当我将其更改为其他用户名时,内容没有更改...在这里我错过了哪一步?

views.py

def public_view(request, username):
    if request.user.is_authenticated():
        info = Profile.objects.filter(user=request.user)
        instance = Parent.objects.filter(user=request.user)
        childs = Child.objects.filter(user=request.user)
        u = MyUser.objects.get(username=username)

        context = {
            'info': info,
            'instance': instance,
            'childs': childs,
            'u': u,
        }
        return render(request, 'public/public_home.html', context)
    else:
        raise Http404

urls.py

from django.conf.urls import url
from django.contrib import admin

from . import views


urlpatterns = [
    url(r'^user/(?P<username>\w+)/$', views.public_view, name='public_view'),
]

1 个答案:

答案 0 :(得分:1)

在您看来,您可以在查询集中使用request.user获取当前用户的数据。您应该更改查询集的参数t u对象:

def public_view(request, username):
    if request.user.is_authenticated():
        u = MyUser.objects.get(username=username)
        info = Profile.objects.filter(user=u)
        instance = Parent.objects.filter(user=u)
        childs = Child.objects.filter(user=u)

        context = {
            'info': info,
            'instance': instance,
            'childs': childs,
            'u': u,
        }
        return render(request, 'public/public_home.html', context)
    else:
        raise Http404