Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow callbacks and/or querysets or some other way of providing deeper data #7

Open
ScottEAdams opened this issue Aug 1, 2013 · 3 comments

Comments

@ScottEAdams
Copy link

Fantastic work and very easy to set up datatables (have it working with tabletools and editor = very nice).

However, I very quickly find myself needing/wanting to be able to pull in data using callbacks/querysets and similar. Is there anyway to do this?

@noirbizarre
Copy link
Owner

Thanks!!

Can you explain hat you need: an example, a code sample, or even better a pull-request if you need to add some feature!

Right now you can hook into the DatatablesView class and override the get_queryset() method (or any other).

If it's not responding to your need, I can adjust that.
Just provide an example.

@kmitrovic
Copy link

@bernardotorres
Copy link

Hi @noirbizarre and folks. This has also been a issue with me. I wanted to display data defined as @property and also transform the data to present it in a more pleasant way, with widgets, for example (in my specific case, I had a Batch object with a printProgress @property which I wanted to present as a progress bar.

So I made a patch.

This was the final result:

bildschirmfoto 2014-12-18 um 23 48 25

This is how the DataTable was defined:

class BatchDatatablesView(DatatablesView):
    model = Batch
    fields = {
        'client':'client__name',
        'start':'start',
        'quantity':'quantity',
        'credential':'credential',
        'progress':showProgress,
    }

credential is a @property of Batch.

showProgress is a callable which takes the row (Django ORM single object) and returns a string to be displayed. In this case:

def showProgress(row):
    return """<div class="progressbar_outer">
<div class="progressbar_percentage" style="width: %d%%" />
</div>""" % row.printProgress

The present patch does not enable searching from properties or callables, but I don't think it would be a good idea anyway.

I'm opening a pull-request.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants