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