рдЬрдм рднреА рдореИрдВ рдХрд┐рд╕реА рдкреЛрд╕реНрдЯ рдХреЗ рдмрд╛рдж рдЕрдиреБрдорддрд┐рдпрд╛рдВ рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдореЗрд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдореБрдЭреЗ DoNotExist рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИред
рдореЗрд░реЗ рдореЙрдбрд▓.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 рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг 2.2 рд╣реИ djnago рдЕрднрд┐рднрд╛рд╡рдХ 2 . рдХреЗ рд╕рд╛рде
рдореИрдВ рд╢реЙрд░реНрдЯрдХрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ
рдЕрд╕рд╛рдЗрди_рдкрд░реНрдо ('can_add_widget', рд╕рдореВрд╣, obj)
рдФрд░ рдореБрдЭреЗ django.contrib.auth.models.Permission.DoesNotExist рдорд┐рд▓рддрд╛ рд╣реИ: рдЕрдиреБрдорддрд┐ рдорд┐рд▓рд╛рди рдХреНрд╡реЗрд░реА рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдореЗрд░реЗ рдкрд╛рд╕ djnago рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг 2.2 рд╣реИ djnago рдЕрднрд┐рднрд╛рд╡рдХ 2 . рдХреЗ рд╕рд╛рде
рдореИрдВ рд╢реЙрд░реНрдЯрдХрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ
рдЕрд╕рд╛рдЗрди_рдкрд░реНрдо ('can_add_widget', рд╕рдореВрд╣, obj)
рдФрд░ рдореБрдЭреЗ django.contrib.auth.models.Permission.DoesNotExist рдорд┐рд▓рддрд╛ рд╣реИ: рдЕрдиреБрдорддрд┐ рдорд┐рд▓рд╛рди рдХреНрд╡реЗрд░реА рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИред