Django-guardian: DosNotExist: ๊ถŒํ•œ ์ผ์น˜ ์ฟผ๋ฆฌ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2014๋…„ 10์›” 28์ผ  ยท  2์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: django-guardian/django-guardian

๋‚ด ํ”„๋กœ์ ํŠธ์—์„œ POST ํ›„ ๊ถŒํ•œ์„ ์„ค์ •ํ•˜๋ ค๊ณ  ํ•  ๋•Œ๋งˆ๋‹ค DoesNotExist ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๋‚ด ๋ชจ๋ธ.py

class Project(models.Model):
    # Leader of the project
    project_name = models.CharField(max_length=200, unique=True)

    # The url for the stash repository 
    #project_repo = models.

    # Date the project was created
    date_created = models.DateTimeField(auto_now=True)

    # Person in charge of the project
    project_lead = models.ForeignKey(User, related_name='%(class)s_lead_set')

    # Group of members to use for permission checking
    members = models.ForeignKey(Group, null=True, default=None)

    class Meta: 
        permissions = (
            ('edit_project', 'Edit Project'),
        )

๋‚ด ๋ณด๊ธฐ.py

<strong i="10">@login_required</strong>
def create(request): 
    if request.method== "POST": 
        form = NewProjectForm(request.POST)

        if form.is_valid(): 

            # Create the new project
            project = Project(**form.cleaned_data)
            project.project_lead = request.user

            # Create a user group
            members = Group.objects.create(name = project.project_name)
            members.save()

            # Add the members group to the project
            project.members = members
            project.save()

            assign_perm('edit', members, project)
            members.save()

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

djnago Guardian 2๊ฐ€ ํฌํ•จ๋œ djnago ๋ฒ„์ „ 2.2๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋ฐ”๋กœ ๊ฐ€๊ธฐ๋ฅผ ์‚ฌ์šฉ

assign_perm('can_add_widget', ๊ทธ๋ฃน, ๊ฐœ์ฒด)

django.contrib.auth.models.Permission.DoesNotExist: ๊ถŒํ•œ ์ผ์น˜ ์ฟผ๋ฆฌ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

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

๋‚˜๋Š” ๋ฐ”๋ณด์ด๊ณ  ๋‚ด ๊ถŒํ•œ์ด ๋‚ด ๋ชจ๋ธ๊ณผ ๋‚ด ๋ณด๊ธฐ ๊ฐ„์— ์ผ์น˜ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ซ์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ‹ฐ์ผ“์ด ๋งˆ๊ฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

djnago Guardian 2๊ฐ€ ํฌํ•จ๋œ djnago ๋ฒ„์ „ 2.2๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋ฐ”๋กœ ๊ฐ€๊ธฐ๋ฅผ ์‚ฌ์šฉ

assign_perm('can_add_widget', ๊ทธ๋ฃน, ๊ฐœ์ฒด)

django.contrib.auth.models.Permission.DoesNotExist: ๊ถŒํ•œ ์ผ์น˜ ์ฟผ๋ฆฌ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

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

๊ด€๋ จ ๋ฌธ์ œ

Allan-Nava picture Allan-Nava  ยท  4์ฝ”๋ฉ˜ํŠธ

brianmay picture brianmay  ยท  16์ฝ”๋ฉ˜ํŠธ

ad-m picture ad-m  ยท  13์ฝ”๋ฉ˜ํŠธ

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

johnthagen picture johnthagen  ยท  9์ฝ”๋ฉ˜ํŠธ