django-tables2无法对某些字段进行排序
我有一个Django模型,定义如下:django-tables2无法对某些字段进行排序,django,django-models,django-templates,django-views,django-tables2,Django,Django Models,Django Templates,Django Views,Django Tables2,我有一个Django模型,定义如下: class DummyModel(models.Model): name = models.CharField(max_length=100, name='Name') description = models.CharField(name='Description', max_length=150) time_points = models.PositiveIntegerField(name="Time Points") m
class DummyModel(models.Model):
name = models.CharField(max_length=100, name='Name')
description = models.CharField(name='Description', max_length=150)
time_points = models.PositiveIntegerField(name="Time Points")
more_text = models.CharField(max_length=100, name="More Text")
class Meta:
db_table = "dummy"
@login_required(login_url="login/")
def review(request):
table = DummyTable(DummyModel.objects.all())
RequestConfig(request).configure(table)
return render(request, 'review.html', {'reviews': table})
我想稍后进行一些自定义,以便我也有一个table类:
class DummyTable(tables.Table):
class Meta:
model = DummyModel
attrs = {'class': 'paleblue'}
我有一个相应的看法如下:
class DummyModel(models.Model):
name = models.CharField(max_length=100, name='Name')
description = models.CharField(name='Description', max_length=150)
time_points = models.PositiveIntegerField(name="Time Points")
more_text = models.CharField(max_length=100, name="More Text")
class Meta:
db_table = "dummy"
@login_required(login_url="login/")
def review(request):
table = DummyTable(DummyModel.objects.all())
RequestConfig(request).configure(table)
return render(request, 'review.html', {'reviews': table})
最后,我使用以下方法将其渲染到我的模板中:
{% block content %}
{% load static %}
{% load render_table from django_tables2 %}
<div class="function-container">
{% render_table reviews %}
</div>
{% endblock %}
但是,如果我将浏览器指向http://127.0.0.1:8000/review/?sort=time_points
,这很有效。因此,不知何故,没有传递正确的字段名。我尝试更改名称
并添加详细名称
字段,如下所示:
time_points = models.PositiveIntegerField(name="time_points", verbose_name="Time Points")
但是,这在
中没有返回这样的列:dummy.time\u points
我想出了一种方法来实现这一点,那就是重写表中的列。所以,现在我的模型看起来就像:
class DummyModel(models.Model):
name = models.CharField(max_length=100)
description = models.CharField(max_length=150)
time_points = models.PositiveIntegerField()
more_text = models.CharField(max_length=100)
class Meta:
db_table = "dummy"
在我的自定义表格
课程中,我有:
class DummyTable(tables.Table):
#Override here to change the column header text
time_points = tables.Column(verbose_name='Time Points')
more_text = tables.Column(verbose_name='More Text')
class Meta:
model = DummyModel
attrs = {'class': 'paleblue'}
现在,排序工作如预期的那样