24 lines
		
	
	
		
			682 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			24 lines
		
	
	
		
			682 B
		
	
	
	
		
			Python
		
	
	
	
	
	
"""passbook helper views"""
 | 
						|
 | 
						|
from django.views.generic import CreateView
 | 
						|
from guardian.shortcuts import assign_perm
 | 
						|
 | 
						|
 | 
						|
class CreateAssignPermView(CreateView):
 | 
						|
    """Assign permissions to object after creation"""
 | 
						|
 | 
						|
    permissions = [
 | 
						|
        '%s.view_%s',
 | 
						|
        '%s.change_%s',
 | 
						|
        '%s.delete_%s',
 | 
						|
    ]
 | 
						|
 | 
						|
    def form_valid(self, form):
 | 
						|
        response = super().form_valid(form)
 | 
						|
        for permission in self.permissions:
 | 
						|
            full_permission = permission % (
 | 
						|
                self.object._meta.app_label, self.object._meta.model_name)
 | 
						|
            print(full_permission)
 | 
						|
            assign_perm(full_permission, self.request.user, self.object)
 | 
						|
        return response
 |