यह मेरा 'परियोजना' पर मेरे लिए काम करता तालिका/मॉडल:
@permission_required('myApp.add_project')
def create(request):
# python code etc...
जाहिर add_ [जो कुछ भी अपने मॉडल/तालिका है] को add_project बदल जाते हैं। इसे संपादित करने के लिए:
@permission_required ('myApp।edit_project ')
और नष्ट करने के लिए:
@permission_required (' myApp.delete_project ')
लेकिन मैंने पाया कि मुख्य बात सुनिश्चित करें कि आपके प्रमाणन टेबल सही ढंग से स्थापित कर रहे हैं बनाने के लिए है। यही कारण है कि मुझे समस्याएं हुईं। यदि आप समूह का उपयोग कर रहे हैं तो अनुमतियों की जांच करने के लिए मैंने एक MySQL SQL क्वेरी लिखा है। यह सबसे डीबीएस में काम करना चाहिए:
select usr.id as 'user id',usr.username,grp.id as 'group id',grp.name as 'group name',grpu.id as 'auth_user_groups',grpp.id as 'auth_group_permissions',perm.name,perm.codename
from auth_user usr
left join auth_user_groups grpu on usr.id = grpu.user_id
left join auth_group grp on grpu.group_id = grp.id
left join auth_group_permissions grpp on grp.id = grpp.group_id
left join auth_permission perm on grpp.permission_id = perm.id
order by usr.id;
मैंने पाया कि मेरी अनुमतियाँ ठीक से सेट नहीं किया गया है, और यह भी django_content_type तालिका जो ऐड, संपादित से प्रत्येक के लिए प्रत्येक अनुप्रयोग और मेज के लिए पंक्तियों होना आवश्यक है के लिए बाहर देखने के लिए, हटाना । तो अगर आप एक परियोजना तालिका है आप django_content_type में यह देखना चाहिए:
id [generated by dB]
app_label myApp
model project
आप मुसीबत एक और अच्छा विचार करने के लिए सक्षम और Django व्यवस्थापक ऐप्स का उपयोग करना है कर रहे हैं। यह आपको दिखाएगा कि आपकी समस्याएं कहां हैं, और कुछ परीक्षण अनुमतियां सेट करके, उपयोगकर्ता और समूह, फिर आप ऊपर चर्चा की गई तालिकाओं की जांच कर सकते हैं ताकि यह देखने के लिए कि क्या किया जा रहा है। यह आपको एक अच्छा विचार देगा कि ऑथ अनुमतियाँ कैसे काम करती हैं।
मैं इसे लिखने के लिए कुछ घंटे खर्च करने से बचाने के लिए लिख सकता हूं जो मैंने किया था!
धन्यवाद। यह काम करता है। क्या आपके पास perm_required का उपयोग करने का उदाहरण है? प्रलेखन से http://docs.djangoproject.com/en/1.0/topics/auth/#the-permission-required-decorator और http://www.djangobook.com/en/2.0/chapter14/ मैंने सोचा कि मैं क्या काम करना चाहिए था। – Mitch
आह। समझा। दृढ़ता के लिए धन्यवाद। – Mitch
क्या आप कृपया समझा सकते हैं कि अंत में ** 'poll.can_vote' ** पैरामीटर के साथ क्या हो रहा है? इसका उद्देश्य क्या है और इसका संदर्भ कहां है? क्या यह शायद समूह का नाम है, एक सदस्य होना चाहिए? –