当前,我可以通过以下任何网址获取当前登录用户的画廊
example.com/user/gallery
example.com/user123/gallery
example.com/312any-thing/gallery
这不是我想要的。我想要的是先检查是否存在用户,然后通过来提供所需的库ArchiveIndexView
。
我如何在类中获得username
example.com/ username
/ gallery的一部分ArchiveIndexView
以实现
user = get_object_or_404(UserProfile, slug=username)
?
# project urls
urlpatterns = [
url(r'^(?P<slug>[\w.-]+)/', include('profiles.urls', namespace='profiles_user')),
]
# app.urls
urlpatterns = [
url(r'^$', views.ProfileDetailView.as_view(), name='profiles_home'),
url(r'^gallery/$', views.ProfileGalleryArchiveIndexView.as_view(), name='profiles_gallery'),
]
# app.views
class ProfileGalleryDateView(object):
date_field = 'date_added'
allow_empty = True
class ProfileGalleryArchiveIndexView(ProfileGalleryDateView, ArchiveIndexView):
def get_queryset(self):
user = self.request.user # here I want to get username from url
user = get_object_or_404(UserProfile, slug=username)
return Gallery.objects.filter(galleryextended__user=user).is_public()
我尝试username
使用以下方法从url获取:
def get_context_data(self, **kwargs):
context = super(ProfileDetailView, self).get_context_data(**kwargs)
user = get_object_or_404(UserProfile, pk=kwargs['object'].pk)
但get_queryset
比早执行get_context_data
。
您的URLslug
会将用户名捕获为,因此您可以从获取用户名self.kwargs['slug']
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句