0
は、私はインターネットのようなソリューションで見つかった:割り当てられたメソッドに追加の属性を送信する方法は?
def is_owner(self):
if self.request.user.profile_url == self.kwargs['profile_url']:
return True
else:
raise PermissionDenied
class CompanyProfileUpdateView(LoginRequiredMixin, UserPassesTestMixin, UpdateView):
model = CompanyProfile
template_name = 'profiles/create.html'
fields = ['user', 'name']
test_func = is_owner
誰が、どのようにメソッドに付加価値を送信する方法を教えてもらえますか?何self
P.S.がないため、動作していない、明らかに
def is_owner(self, profile_type):
if profile_type == 'user':
if self.request.user.profile_url == self.kwargs['profile_url']:
return True
else:
raise PermissionDenied
else:
# some code
test_func = is_owner('user')
: 私のようなものを持ちたいですtest_func
はUserPassesTestMixin
クラスのメソッドです
第一選択肢が許容されます。 1) 'def is_owner(self):'はクラス外になければなりません2 '' $ $ '、views.CompanyProfileUpdateView.as_view(kwargs = {' profile_type ':' user '}) 、name = 'update_user')、 'は動作しません。私はそれを 'url('^$ '、views.CompanyProfileUpdateView.as_view()、kwargs = {' profile_type ':' user '}、name =' update_user ')に変更する必要があります。 – TitanFighter
ドキュメントによると、他に何かを割り当てるのではなく、単に 'test_func'をオーバーライドするだけです。 – schillingt
はい、私は知っています:)しかし、私は所有者をチェックする9つのビューを持っているので、コードの繰り返しや 'django-imagestore'のソースで見つけた割り当てトリックを避けたいです - https://github.com/hovel/imagestore /blob/master/imagestore/views.py – TitanFighter