Django-guardian: ์žฅ๊ณ  ๋‹คํ˜•์„ฑ ์งˆ๋ฌธ

์— ๋งŒ๋“  2016๋…„ 09์›” 20์ผ  ยท  5์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: django-guardian/django-guardian

๋‚˜๋Š” django-polymorphic๊ณผ ํ•จ๊ป˜ django-guardian์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•œ ๋งŽ์€ ํ† ๋ก ์„ ๋ณด์•˜์ง€๋งŒ ๋‚˜์—๊ฒŒ๋Š” ๋งค์šฐ ํ˜ผ๋ž€์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค.
์ด ๊ฒฝ์šฐ๋ฅผ ์ƒ์ƒํ•ด๋ณด์‹ญ์‹œ์˜ค.

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 ๋ฒ„์ „์ด ์ด๋ฏธ ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๊นŒ? "pip install --upgrade django-guardian"์„ ์‹คํ–‰ํ•  ๋•Œ pip๋Š” 1.4.6์ด ๋งˆ์ง€๋ง‰์ด๋ผ๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค) ์ด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ ์ˆ˜๋™์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ฒƒ์ด ์ข‹์€ ์ƒ๊ฐ์ž…๋‹ˆ๊นŒ?)?

๋ชจ๋“  5 ๋Œ“๊ธ€

์•ˆ๋…•ํ•˜์‹ญ๋‹ˆ๊นŒ,

์žฅ๊ณ  ๋‹คํ˜•์„ฑ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. django-polymorphic ์—๋Š” django-guardian ์ง€์›์„ ์œ„ํ•œ ์ฝ”๋“œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ์ง€์›์— ๋Œ€ํ•œ django-polymorphic ๋ฌธ์„œ๋ฅผ ์ฐพ์œผ์‹ญ์‹œ์˜ค.

์ธ์‚ฌ๋ง,

CC: @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

@BenDevelopment ์ˆ˜์ •, ์„ค์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

GUARDIAN_GET_CONTENT_TYPE = 'polymorphic.contrib.guardian.get_polymorphic_base_content_type'

๋ฌธ์„œ์—์„œ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด PR์„ ๋‹คํ˜•์„ฑ์œผ๋กœ ๋งŒ๋“ค ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ๋ชจ๋‘ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค ๐Ÿ‘ ๐Ÿ’ฏ !

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰

๊ด€๋ จ ๋ฌธ์ œ

David-OConnor picture David-OConnor  ยท  6์ฝ”๋ฉ˜ํŠธ

g-as picture g-as  ยท  10์ฝ”๋ฉ˜ํŠธ

xuhcc picture xuhcc  ยท  10์ฝ”๋ฉ˜ํŠธ

lukaszb picture lukaszb  ยท  14์ฝ”๋ฉ˜ํŠธ

Dzejkob picture Dzejkob  ยท  28์ฝ”๋ฉ˜ํŠธ