我正在构建一个需要用户配置文件的小应用程序,我用Django的用户系统构建。但我有一个关于即使您没有登录,你仍然可以查看配置文件还另一件事是,每个用户只能看到他的轮廓不是别人,我需要在这Django登录需要查看
views.py
一些技巧问题class UserProfileDetailView(DetailView):
model = get_user_model()
slug_field = "username"
template_name = "user_detail.html"
def get_object(self, queryset=None):
user = super(UserProfileDetailView, self).get_object(queryset)
UserProfile.objects.get_or_create(user=user)
return user
class UserProfileEditView(UpdateView):
model = UserProfile
form_class = UserProfileForm
template_name = "edit_profile.html"
def get_object(self, queryset=None):
return UserProfile.objects.get_or_create(user=self.request.user)[0]
def get_success_url(self):
return reverse("profile", kwargs={"slug": self.request.user})
这是不是做的方式为Django CBV。 – Joseph
在CBV中,他不能仅仅在调度方法上使用@login_rquired吗? –
这意味着覆盖每个方法(如果他使用来自其他应用程序的视图),只需添加装饰器并调用重叠。非常不整洁。 – WhyNotHugo