我有一个模型,其管理员如下:
class MyModelAdmin(admin.ModelAdmin):
list_display = ('invoice_code', 'total_amount', 'paid', )
list_editable = ('paid', )
search_fields = ('invoice_code', )
def __init__(self, *args, **kwargs):
super(MyModelAdmin, self).__init__(*args, **kwargs)
self.list_display_links = (None, )
此处付费字段是一个布尔字段,默认情况下将取消选中。我想要实现的是,付费字段在未选中时应该是可编辑的,并且在选中时应该是只读的。我想在 list_editable 中实现这一目标。是否有可能实现这一目标?如果是这样,怎么办?谢谢你的到来。
答案 0 :(得分:2)
据我所知,你只能使用list_editable中的默认字段。这些字段仅支持与这些默认字段关联的标准行为。此外,您可以对表中的记录执行的操作彼此相等。
如果你想在行到行的基础上实现自定义行为,我相信你必须在你的模型中实现一个函数,它返回一个可以在被选中时编辑的字段,并且在未选中时是不可编辑的。这只是返回一个html复选框的问题,该复选框是活动的还是不活动的,基于你提供的类和一些JS。您也可以将其直接实现到具有禁用属性的输入复选框中。
为了更新复选框和指定的字段,你必须通过ajax POST命令(通过Jquery或其他东西)将值更新到后端,或者你必须改变行为表单/视图,必须通过保存来更新。
希望这有帮助。