问题描述
我的模型中有一个字段,当前返回一个整数作为批准标志。我试图弄清楚如何使其在加载时在桌子上显示为“是”或“否”,而不是被卡住。
这就是我现在正在使用的内容: 型号
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 (将#修改为@)