Django-guardian: django-рдмрд╣реБрд░реВрдкреА рдкреНрд░рд╢реНрди

рдХреЛ рдирд┐рд░реНрдорд┐рдд 20 рд╕рд┐рддре░ 2016  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: django-guardian/django-guardian

рдореИрдВрдиреЗ django-рдЕрднрд┐рднрд╛рд╡рдХ рдХреЗ рд╕рд╛рде django-polymorphic рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрдИ рдЪрд░реНрдЪрд╛рдПрдВ рджреЗрдЦреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рднреНрд░рдорд┐рдд рд╣реИред
рдЗрд╕ рдорд╛рдорд▓реЗ рдХреА рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП:

class FeedPost(PolymorphicModel):  
    class Meta: 
        default_permissions = ('add', 'change', 'delete', 'view')  


class ArticleFeedPost(FeedPost):
    class Meta: 
        default_permissions = ('add', 'change', 'delete', 'view')

django-guardian 1.4.6 рдХреЗ рд╕рд╛рде, рдЬрдм рдЖрдк ArticleFeedPost рдкрд░ рдЕрдиреБрдорддрд┐рдпрд╛рдБ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпреЗ рдЕрдиреБрдорддрд┐рдпрд╛рдБ FeedPost рдкрд░ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИрдВред
рдбреЙрдХреНрдЯрд░ рдореЗрдВ, рдпрд╣ рдмрд╣реБрд░реВрдкреА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ:
http://django-guardian.readthedocs.io/en/stable/configuration.html?highlight=polymorph#guardian -get-content-type
рд▓реЗрдХрд┐рди get_default_content_type рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдХреЛрдИ рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВ рд╣реИред
рдореЗрд░реЗ рдкреНрд░рд╢реНрди рд╣реИрдВ (рд╡реИрд╕реЗ, рдореБрдЭреЗ рдЗрди рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдпрд╣рд╛рдВ рдкреВрдЫрдиреЗ рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкрд╛рд╕ рдХрд╣реАрдВ рдФрд░ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдпрд╣рд╛рдВ рдЙрддреНрддрд░ рджреЗрдиреЗ рдХрд╛ рдмреЗрд╣рддрд░ рдореМрдХрд╛ рд╣реИ):

  • рд╣рдо "рдкреИрд░реЗрдВрдЯ" рдкреЙрд▓реАрдореЙрд░реНрдл рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХрд╛ рдкреНрд░рдЪрд╛рд░ рдХреИрд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
  • рд╣рдо рдЕрднрд┐рднрд╛рд╡рдХ 1.5 рд╕рдВрд╕реНрдХрд░рдг рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ django рдкреИрдХреЗрдЬ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдВред рдХреНрдпрд╛ 1.5 рд╕рдВрд╕реНрдХрд░рдг рдкрд╣рд▓реЗ рд╣реА рдЬрд╛рд░реА рд╣реЛ рдЪреБрдХрд╛ рд╣реИ? рдЬрдм рдореИрдВ "рдкрд╛рдЗрдк рдЗрдВрд╕реНрдЯреЙрд▓ - рдЕрдкрдЧреНрд░реЗрдб django-guardian" рдЪрд▓рд╛рддрд╛ рд╣реВрдВ, рддреЛ рдкрд╛рдЗрдк рдХрд╣рддрд╛ рд╣реИ рдХрд┐ 1.4.6 рдЕрдВрддрд┐рдо рд╣реИ рд╕рдВрд╕реНрдХрд░рдгред рдХреНрдпрд╛ рдЗрд╕ рд░реЗрдкреЛ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдХреЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ?)?

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

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

рдпрд╣ рдПрдХ django-рдмрд╣реБрд░реВрдкреА рдореБрджреНрджрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИред django-polymorphic рдореЗрдВ django-guardian рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рдХреЛрдб рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ django-polymorphic рдбреЙрдХреНрд╕ рджреЗрдЦреЗрдВред

рдЕрднрд┐рд╡рд╛рджрди,

рд╕реАрд╕реА: @benkonrath

рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдореБрджреНрджреЛрдВ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдпрд╣ рдШреЛрд╖рдгрд╛ рдХрд░рддреЗ рд╣реБрдП рдкреНрд░рд╕рдиреНрдирддрд╛ рд╣реЛ рд░рд╣реА рд╣реИ рдХрд┐ рдпрд╣ рдзреНрдпрд╛рди рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред рдЕрдЧрд▓реЗ рд░рд┐рд▓реАрдЬ рдореЗрдВ рд╕рд╣реА рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред GUARDIAN_GET_CONTENT_TYPE django 1.4.6 рдореЗрдВ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

@BenDevelopment рдмреЗрд╕ рдореЙрдбрд▓ рд╕рд╛рдордЧреНрд░реА рдкреНрд░рдХрд╛рд░ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рд╛рд▓ рд╣реА рдореЗрдВ django-polymorphic рдореЗрдВ рд╡рд┐рд▓рдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЖрдзрд╛рд░ рдореЙрдбрд▓ рд╕рд╛рдордЧреНрд░реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЕрднрд┐рднрд╛рд╡рдХ рдЕрдиреБрдорддрд┐рдпрд╛рдВ рдЖрдзрд╛рд░ рдореЙрдбрд▓ рдкрд░ рдХрд╛рдо рдХрд░реЗрдВрдЧреАред рдпрджрд┐ рдЖрдк django-guardian рдХреЗ рдирд╡реАрдирддрдо рд░рд┐рд▓реАрдЬрд╝ рдХрд┐рдП рдЧрдП рд╕рдВрд╕реНрдХрд░рдг рдФрд░ git рд╕реЗ django-polymorphic рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдмрд╕ рдЗрд╕ рд╕реЗрдЯрд┐рдВрдЧ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

 GUARDIAN_GET_CONTENT_TYPE = 'polymorphic.contrib.get_polymorphic_base_content_type'

рдпрджрд┐ рдЖрдк django-polymorphic рдХреЗ рдирд╡реАрдирддрдо git рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк get_polymorphic_base_content_type рдХреЛрдб рдХреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдХреЙрдкреА рдФрд░ рдкреЗрд╕реНрдЯ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдпрд╣рд╛рдВ рдЕрдкреНрд░рдХрд╛рд╢рд┐рдд рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╣реИрдВ:

https://django-polymorphic.readthedocs.io/en/latest/third-party.html#django -guardian-support

@ рдмреЗрди рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рд╕реБрдзрд╛рд░, рд╕реЗрдЯрд┐рдВрдЧ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП:

GUARDIAN_GET_CONTENT_TYPE = 'polymorphic.contrib.guardian.get_polymorphic_base_content_type'

рдореИрдВ рдбреЙрдХреНрд╕ рдореЗрдВ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреЙрд▓рд┐рдореЙрд░реНрдлрд┐рдХ рдХреЛ рдкреАрдЖрд░ рдмрдирд╛рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред

рдЖрдк рд▓реЛрдЧреЛрдВ рдХреЛ рдзрдиреНрдпрд╡рд╛рдж! рд╕рдм рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ !

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

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

g-as picture g-as  ┬╖  10рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

David-OConnor picture David-OConnor  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

brianmay picture brianmay  ┬╖  16рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

xuhcc picture xuhcc  ┬╖  10рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Allan-Nava picture Allan-Nava  ┬╖  35рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ