我无法按模型属性对表排序。我知道我应该在列中设置访问器,以便django-tables2
知道要处理的字段,但它不起作用。无法按模型的属性对排序表进行排序(访问器集)
这是表:
class ScansTable(tables.Table):
site = tables.columns.Column(accessor='occurence.site', verbose_name='Site')
url = tables.columns.TemplateColumn("""<a href="{{ record.occurence.url }}">{{ record.occurence.url|truncatechars:20 }}</a>""",
accessor='occurence.url', verbose_name='Url')
price = tables.columns.TemplateColumn(u"""{{ record.price }} €""")
date = tables.columns.Column(accessor='date',order_by='date')
time = tables.columns.Column(accessor='time',order_by='time')
class Meta:
model = Scan
fields = ('date', 'time', 'site', 'url', 'valid', 'price')
attrs = {'id': 'cans_table',
'class': 'table',}
这是扫描模式:
class Scan(models.Model):
occurence = models.ForeignKey('Occurence', related_name='scans')
datetime = models.DateTimeField()
price = models.DecimalField(max_digits=20,decimal_places=2,null=True,blank=True,verbose_name='Price')
valid = models.BooleanField(default=True,verbose_name='Valid')
def __unicode__(self):
return u'{} {} {} {}'.format(self.occurence, self.datetime, self.price, u'OK' if self.valid else 'NOK')
@property
def date(self):
return self.datetime.date()
@property
def time(self):
return self.datetime.time()
的观点:当我不
def scans(request):
...
scans = Scan.objects.filter(occurence__product=product)
scans_table = ScansTable(scans)
RequestConfig(request).configure(scans_table)
scans_table.paginate(page=request.GET.get('page', 1), per_page=50)
return render(request,"dashboard_app/scans.html",context={'scans_table':scans_table})
表进行适当的renderd想对它进行排序。当我点击的时间(例如),它返回:
无法解析关键字u'time”到现场。选择是:datetime, groups,id,occurence,occurence_id,price,valid
你知道问题在哪里吗?
我不明白...产品是一个模型它可以有多个Occurence对象。 –
好吧,你传递什么样的价值是什么类型的产品它是一个产品的实例??? –