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



我正在尝试构建一个应用程序,在该应用程序中,每个用户都有自己的数据库内容,但在一个页面/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'),
]

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

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

最新更新