umesh-krishna / django_serverside_datatable

Server-side Datatable with Django
MIT License
26 stars 8 forks source link

How to deal with model property-functions #12

Open odoublewen opened 2 years ago

odoublewen commented 2 years ago

@umesh-krishna Can you think of any clever way to make properties available in the server-side data table view?

I.e. say my models look like:

class Bar(models.Model):
    foo = models.ForeignKey(Foo, ....)

class Foo(models.Model):
    field1 = ...
    field2 = ...

    @property
    def number_of_bars(self):
        return Bar.objects.filter(foo=self).count()

How can I get number_of_bars into the datatable?

odoublewen commented 2 years ago

I tried this:

class FooViewServerSide(ServerSideDatatableView):
    queryset = models.Foo.objects.annotate(number_of_bars =Count('bar')).all()
    columns = ['field1', 'field2', 'number_of_bars']

but, as you probably won't be surprised to learn, it doesn't work.

django.core.exceptions.FieldError: Cannot resolve keyword 'number_of_bars' into field