Django Tables2更改TD显示文本

问题描述

我的模型中有一个字段,当前返回一个整数作为批准标志。我试图弄清楚如何使其在加载时在桌子上显示为“是”或“否”,而不是被卡住。

这就是我现在正在使用的内容: 型号

Image1        Image4
Image2-Image2 Image4
Image2-Image2 Image5

tables.py

class Transaction(AbstractEvent):
     number = models.IntegerField(null=True)
     rate_key = models.CharField(max_length=RATE_KEY_LEN,null=False)
     chg_typ = models.CharField(max_length=40,verbose_name="Charge Type")
     chg_cod = models.CharField(max_length=40,verbose_name="Charge Code")
     uc_tran_uom = models.CharField(max_length=25,default='PA')
     uc_ecb_paytrm = models.CharField(max_length=30,blank=True,null=True)
     approved_flg = models.IntegerField(default=0,verbose_name="Approved")
     voided_flg = models.IntegerField(default=0)
     invoice = models.ForeignKey(Invoice,null=True,on_delete=models.CASCADE)
     untqty = models.IntegerField(default=1,verbose_name="Quantity")
     uc_rate = models.FloatField(default=0)
     uc_total = models.FloatField(default=0)
     uc_sent = models.IntegerField(default=0)
     event = models.ForeignKey(Event,on_delete=models.CASCADE)

我对table2还是很陌生,我做的原始方式是在呈现模板的方法中使用带有if语句的映射,但在这种情况下我不知道该怎么做。任何帮助都非常感谢。

编辑 因此,我找到了一个使用自定义列的解决方案,该方法可以解决问题,以防有人遇到与我类似的问题,而您仍然是新手。该记录将为所讨论的表格单元返回正确的值,在这种情况下,我只想将显示从1或0更改为“ yes”或“ no”。由于将其设置为整数字段(以前是由其他人完成的,因此目前无法更改),因此显然会显示一个数字。我所做的是:

class TransactionTable(tables.Table):
     id_field = tables.CheckBoxColumn(accessor='pk',attrs={
    "th__input" : {"onclick" : "selectAll(this)"},"td__input" : {"class" : "selectRow"}
})
number =tables.TemplateColumn('<a href="{% url "ecb:edit-transaction" record.id  %}">{{record.number}}</a>')
approved = tables.Column(accessor="approved_flg",attrs={
    "td" : {"id" : "approval","class" : "status"}
    })
class Meta:

    model = Transaction
    
    attrs = {"id" : "transactions",'tbody' : {'id': 'tx_table'}}
    template_name = "django_tables2/bootstrap.html"
    fields = ('id_field','number','approved','trndte','rate_key','warehouse.name','client.name','division','chg_typ','chg_cod','usr_id','devcod','untqty','rate','total','lodnum','subnum','dtlnum','ordnum','ordtyp','ordlin','ordsln','wkonum','wko_typ','wkorev','wkolin','ship_line_id','ship_id','stop_id','car_move_id','trlr_id','trlr_num','carcod','prtnum','typcod','orgcod','revlvl','lotnum','ftpcod','netwgt','stoloc','doc_num','track_num','trknum','text1','text2','text3','cube_tier')

然后使用它来创建一列并在我的字段中使用(代码的截短版本):

class ApprovedColumn(tables.TemplateColumn):
     def render(self,record,table,value,bound_column,**kwargs):
        if record.approved_flg == 1:
            return "yes"
        else:
            return "no"
        return super(ApprovedColumn,self).render(record,**kwargs)

这将“批准”列从显示的1和0分别更改为是和否。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)