๋ด ํ๋ก์ ํธ์์ 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: ๊ถํ ์ผ์น ์ฟผ๋ฆฌ๊ฐ ์กด์ฌํ์ง ์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
djnago Guardian 2๊ฐ ํฌํจ๋ djnago ๋ฒ์ 2.2๊ฐ ์์ต๋๋ค.
๋๋ ๋ฐ๋ก ๊ฐ๊ธฐ๋ฅผ ์ฌ์ฉ
assign_perm('can_add_widget', ๊ทธ๋ฃน, ๊ฐ์ฒด)
django.contrib.auth.models.Permission.DoesNotExist: ๊ถํ ์ผ์น ์ฟผ๋ฆฌ๊ฐ ์กด์ฌํ์ง ์์ต๋๋ค.