Django-guardian: "рдЕрдиреБрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛: AUTH_USER_MODEL рдореЙрдбрд▓ 'auth.User' рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ"ред

рдХреЛ рдирд┐рд░реНрдорд┐рдд 12 рдлрд╝рд░ре░ 2014  ┬╖  2рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: django-guardian/django-guardian

рдирдорд╕реНрддреЗ,

рдореИрдВ рд╢рд╛рдпрдж рдпрд╣рд╛рдБ рдХреБрдЫ рдЧрд▓рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдБ рдЗрд╕рд▓рд┐рдП рдЕрдЧреНрд░рд┐рдо рдХреНрд╖рдорд╛ рдпрд╛рдЪрдирд╛!

рдореИрдВрдиреЗ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рд╕реНрдерд╛рдкрдирд╛ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЪрд░рдгреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд┐рдпрд╛ред рдпрд╣ "рдЕрдиреБрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛: AUTH_USER_MODEL рдореЙрдбрд▓ 'auth.User' рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ" рдХреЗ рд╕рд╛рде рдЕрдиреБрдорддрд┐рдпрд╛рдВ рдЕрд╕рд╛рдЗрди рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИред

рдореИрдВрдиреЗ рд╕рдВрдмрдВрдзрд┐рдд Django рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкрдврд╝реЗ рд╣реИрдВ рдФрд░ рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ рдХрд╕реНрдЯрдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп AUTH_USER_MODEL рд╕реЗрдЯрд┐рдВрдЧ "app_label.UserModel" рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИред рдореИрдВ рдПрдХ рдХрд╕реНрдЯрдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдбрд┐рдлрд╝реЙрд▓реНрдЯ django рдПрдХред

рдЗрдВрдЯрд░реНрдиреЗрдЯ рдореЗрдВ рдореБрдЭреЗ рдорд┐рд▓реЗ рд╕рднреА рдореБрджреНрджреЗ рдФрд░ рд╕рдорд╛рдзрд╛рди рдХрд╕реНрдЯрдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдореЙрдбрд▓ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдереЗ рдЬреЛ рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдореБрдЭ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред

рдореИрдВ django 1.6.1 рдФрд░ django-рдЕрднрд┐рднрд╛рд╡рдХ 1.1.1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдореИрдВрдиреЗ рд╕реЗрдЯрд┐рдВрдЧ рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ред AUTH_USER_MODEL = 'рдЕрднрд┐рднрд╛рд╡рдХ.рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛' рдХреЛрдИ рдлрд╛рдпрджрд╛ рдирд╣реАрдВ рд╣реБрдЖред

рдХрд┐рд╕реА рднреА рдорджрдж рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХреА!

рдЪрд┐рдпрд░реНрд╕

рдпреЗ рд╕рдЯреАрдХ рдЪрд░рдг рд╣реИрдВ (рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рдпрд╣рд╛рдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ django рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдореЙрдбрд▓ рдХреЗ рдореЗрдЯрд╛ рдХреНрд▓рд╛рд╕ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓рддрд╛ рд╣реИ)

django.contrib.auth.models рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЖрдпрд╛рдд рдХрд░реЗрдВ
рдЬреЙрди = User.objects.get(id=2)
рдЬреЙрди

mtm.models рд╕реЗ рд╢реЗрдпрд░рд┐рдВрдЧ рдЖрдпрд╛рдд рдХрд░реЗрдВ
obj = Sharing.objects.get(id=1)
рдУрдмреНрдЬреЛ

john.has_perm('mtm.change_sharing', obj)
рдЭреВрдард╛
рдЧрд╛рд░реНрдЬрд┐рдпрди рд╕реЗредрд╢реЙрд░реНрдЯрдХрдЯ рдЖрдпрд╛рдд рдЕрд╕рд╛рдЗрди_рдкрд░реНрдо
рдЕрд╕рд╛рдЗрди_рдкрд░реНрдо ('mtm.change_sharing', рдЬреЙрди, obj)
рдЯреНрд░реЗрд╕рдмреИрдХ (рд╕рдмрд╕реЗ рд╣рд╛рд▓рд┐рдпрд╛ рдХреЙрд▓ рдЕрдВрддрд┐рдо):
рдлрд╝рд╛рдЗрд▓ "", рд▓рд╛рдЗрди 1, рдЗрди
рдЕрд╕рд╛рдЗрди_рдкрд░реНрдо ('mtm.change_sharing', рдЬреЙрди, obj)
рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python2.7/dist-packages/guardian/shortcuts.py", рд▓рд╛рдЗрди 71, рдЕрд╕рд╛рдЗрди_рдкрд░реНрдо рдореЗрдВ
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛, рд╕рдореВрд╣ = get_identity (user_or_group)
рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python2.7/dist-packages/guardian/utils.py", рд▓рд╛рдЗрди 73, get_identity рдореЗрдВ
рдЕрдЧрд░ isinstance (рдкрд╣рдЪрд╛рди, get_user_model ()):
рдлрд╝рд╛рдЗрд▓ "/usr/рд╕реНрдерд╛рдиреАрдп/lib/python2.7/dist-packages/django/contrib/auth/ init .py", рд▓рд╛рдЗрди 129, get_user_model рдореЗрдВ
рдЕрдиреБрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ ("AUTH_USER_MODEL рдореЙрдбрд▓ '%s' рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ" % рд╕реЗрдЯрд┐рдВрдЧреНрд╕ред AUTH_USER_MODEL)
рдЕрдиреБрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛: AUTH_USER_MODEL рдореЙрдбрд▓ 'auth.User' рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ

рд╕рднреА 2 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рджрдХреНрд╖рд┐рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдХреЗ рдФрд░ manage.py рдорд╛рдЗрдЧреНрд░реЗрдЯ рдЪрд▓рд╛рдХрд░ рдЗрд╕реЗ рдареАрдХ рдХрд┐рдпрд╛ред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рдореЗрд░реЗ рд╕реЗрдЯрдЕрдк рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдЖрдк рдХреЙрдиреНрдлрд┐рдЧ рдЧрд╛рдЗрдб рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣ рд╕рдХрддреЗ рд╣реИрдВред

рдЪреАрдпрд░реНрд╕!

рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХрд╛ рд╕рдмрд╕реЗ рдЖрдо рдХрд╛рд░рдг:
рдЬрдм рдЖрдкрдиреЗ рдЧрд▓рддреА рд╕реЗ INSTALLED_APPS рдХреЗ рдмрдЬрд╛рдп MIDDLEWARE рдореЗрдВ рдЕрдкрдиреЗ рдРрдк рдХреЗ рдирд╛рдо рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛, рддреЛ рдЕрдкрдиреА settings.py рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬрд╛рдПрдВ рдФрд░ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕