में दिखाई नहीं दे रहे हैं I प्रति ऑर्डर अनुमति प्रबंधित करने के लिए django-guardian का उपयोग कर रहा हूं।django-guardian द्वारा आवंटित अनुमतियों वाले ऑब्जेक्ट्स व्यवस्थापक
एक भी उपयोगकर्ता के लिए मैं अनुमति एक वस्तु पर सभी की अनुमति देते हैं:
joe = User.objects.get(username="joe")
mytask = Task.objects.get(pk=1)
assign('add_task', joe, mytask)
assign('change_task', joe, mytask)
assign('delete_task', joe, mytask)
और मैं मिलता है, के रूप में उम्मीद:
In [57]: joe.has_perm("add_task", mytask)
Out[57]: True
In [58]: joe.has_perm("change_task", mytask)
Out[58]: True
In [59]: joe.has_perm("delete_task", mytask)
Out[59]: True
admin.py में मैं भी TaskAdmin GuardedModelAdmin
बजाय से विरासत बनाने admin.ModelAdmin
अब जब मैं अपनी साइट से जोड़ी से जुड़ता हूं, व्यवस्थापक पर मुझे मिलता है:
You don't have permission to edit anything
क्या मैं वस्तु mytask को संपादित करने में सक्षम नहीं होना चाहिए?
क्या मुझे अंतर्निहित मॉडल-आधारित अनुमति प्रणाली का उपयोग करके कुछ अनुमतियां सेट करनी होंगी?
क्या मुझे कुछ याद आ रही है?
संपादित
मैं विकल्प user_can_access_owned_objects_only
, जो मेरे मुद्दे से निपटने के माना जाता है जोड़ने की कोशिश की है, लेकिन मैं अभी भी अपने व्यवस्थापक में कुछ भी नहीं देख सकते हैं ...
class TaskAdmin(GuardedModelAdmin):
user_can_access_owned_objects_only = True
pass
admin.site.register(Task, TaskAdmin)
धन्यवाद आप
आप self.has_view_permission – Don
@Don हां में 'अनुरोध' और नहीं 'request.user' पास करना चाहिए, धन्यवाद उनका कहना है कि =) – okm
परिवर्तन से संबंधित मुद्दे वर्ज़निंग हो सकता है, लेकिन में चलाने के लिए 'विकल्प' ऑब्जेक्ट में कोई विशेषता नहीं है 'get_change_permission' – Mutant