Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def mark_payment_as_sent_action():
- ''' Admin action to mark payment as sent '''
- def mark_payment_as_sent(modeladmin, request, queryset):
- # #####################################################################
- # This is what I currently do
- payments = queryset.filter(status=models.Payment.S_PENDING)
- # This is what I want to do
- payments = queryset.pending()
- # #####################################################################
- # Do stuff with filtered payments
- return HttpResponseRedirect("...")
- mark_payment_as_sent.short_description = "Mark as sent"
- return mark_payment_as_sent
- class PaymentQuerySet(models.query.QuerySet):
- def pending(self):
- return self.filter(status=self.model.S_PENDING)
- class PaymentManager(models.Manager):
- use_for_related_fields = True
- def get_query_set(self):
- return PaymentQuerySet(self.model)
- def pending(self, *args, **kwargs):
- return self.get_query_set().pending(*args, **kwargs)
- class Payment(models.Model):
- status = models.CharField(
- max_length=25,
- choices=((S_PENDING, 'Pending'), ...)
- )
- objects = managers.PaymentManager()
- @admin.register(models.Payment)
- class PaymentsAdmin(admin.ModelAdmin):
- actions = (
- admin_actions.mark_payment_as_sent_action(),
- )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement