Custom sorting on model property django-table2

240 views Asked by At

I use django-table2. Now I want to create custom sorting on property of my model.

My models are:

class Department(models.Model): 
    Department_TYPE_CHOICES = (
        (1, 'branch'),
        (2, 'unit'),
        (3, 'center'),
    )  
    title = models.CharField(max_length=128)
    identity = models.IntegerField(choices=global_vars.Department_TYPE_CHOICES) 
    reference = models.ForeignKey('self', on_delete=models.PROTECT,null=True)
                    
                                  
class Enrollment(models.Model):
    title = models.CharField(max_length=128) 
    department = models.ForeignKey('department', on_delete=models.PROTECT,null=True)
    
    @property
    def unit(self):
    department = self.department 
    if department.identity == 2:
            return department.title
    elif department.identity == 3:
        return department.reference.title

My table is:

class MyTable(tables.Table):
    unit = tables.Column(order_by=("department"))
    
    class Meta:
        model = Enrollment
        fields = ("title")
    sequence = ('unit', "title")

All things are good except that I want to sort on unit property. I used order_by on unit property, but sorting didn't done on unit and done on department field.

So, How can I define sorting for my property?

0

There are 0 answers