Skip to content

Instantly share code, notes, and snippets.

@teserak
Forked from dstufft/view_utils.py
Created January 25, 2012 08:55
Show Gist options
  • Save teserak/1675506 to your computer and use it in GitHub Desktop.
Save teserak/1675506 to your computer and use it in GitHub Desktop.
class UserOwned(object):
user_field = "user"
def get_user_field(self):
return self.user_field
def get_user(self):
return self.request.user if self.request.user.is_authenticated() else None
def filter_by_user(self, queryset):
# Filter the Query down to only objects owned by this user
queryset = queryset.filter(**{self.get_user_field(): self.get_user()})
return queryset
def get_queryset(self):
"""
Get the list of items for this view. This must be an queryset.
"""
if self.queryset is not None:
queryset = self.queryset._clone()
elif self.model is not None:
queryset = self.model._default_manager.all()
else:
raise ImproperlyConfigured(u"'%s' must define 'queryset' or 'model'"
% self.__class__.__name__)
queryset = self.filter_by_user(queryset)
return queryset
def form_valid(self, form):
self.object = form.save(commit=False)
setattr(self.object, self.get_user_field(), self.get_user())
self.object.save()
return HttpResponseRedirect(self.get_success_url())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment