views.py
class DashboardNewProfile(LoginRequiredMixin, CreateView):
form_class = ProfileForm
model = Profile
queryset = Profile.objects.all()
template_name = 'profile/profile_create.html'
def _usercheck(self):
u = self.request.user
qs = Profile.objects.all().filter(u)
if qs is None:
return HttpResponseRedirect('/profile/create/')
else:
return HttpResponseRedirect('/profile/view/')
def get_form_kwargs(self):
kwargs = super(DashboardNewProfile, self).get_form_kwargs()
kwargs.update({'user': self.request.user})
kwargs.update({'slug': self.request.user.username})
return kwargs
urls.py
url(r'^profile/create/$', views.DashboardNewProfile.as_view(), name="new_profile"),
我如何做以下事情? 如果登录用户已具有与数据库中的配置文件对象关联的配置文件。我不希望用户访问网址(&#39; / profile / create /&#39;)我希望用户自动重定向到另一个网址(&#39; /个人资料/视图&#39;)< / p>
答案 0 :(得分:0)
为了更改LoginRequiredMixin
的作用,您需要覆盖dispatch
方法,该方法检查用户是否已登录。看起来您真正想要的是{{ 1}}装饰者:
user_passes_test
Documentation for user_passes_test
Documentation for method_decorator
请注意,如果您愿意,还有一个UserPassesTestMixin,我通常会将这些测试分开,以便可以在其他视图中使用它们,并且更喜欢装饰器的外观。