我想知道是否可以对ListView的每个记录应用一个规则 示例:从模型中获取一个以克为单位的值,并创建一个包含kg值的新变量,如果该值大于1000
我试过使用get_object,但它只适用于ViewDetail
提前感谢您的帮助:)
class ViewBsin(generic.ListView):
template_name = 'browser/bsin.html'
context_object_name = 'gtin_list'
model = Gtin
...
def get_object(self):
# Call the superclass
object = super(ViewBsin, self).get_object()
# Add new data
if object.M_G and object.M_G >= 1000:
object.M_KG = object.M_G / 1000
if object.M_ML and object.M_ML >= 1000:
object.M_L = object.M_ML / 1000
object.save()
# Return the object
return object
您可以重写
get_queryset
并循环查询集,更新对象。您不应该调用save(),因为这会更新数据库,ListView
应该是只读的。在另一种方法是编写一个custom filter,将克转换为千克。在
然后,在你的模板中,而不是写
^{pr2}$你会的
如果您有更多的自定义逻辑,如“display KG If g>;1000,否则显示g”,那么这些都可以进入模板过滤器。这简化了模板,并将显示逻辑排除在视图之外。在
相关问题 更多 >
编程相关推荐