3

我有一个模型,其管理员如下:

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中实现这一点。有可能实现这一目标吗?如果是这样,该怎么做?谢谢是提前。

4

1 回答 1

2

据我所知,您只能使用 list_editable 中的默认字段。这些字段仅支持与这些默认字段相关的标准行为。此外,您可以对表中的记录执行的操作彼此相同。

如果您想逐行实现自定义行为,我相信您必须在模型中实现一个函数,该函数返回一个字段,如果选中,则该字段可编辑,未选中时不可编辑。这只是根据您提供的类和一些 JS 返回一个活动或不活动的 html 复选框的问题。您也可以将其直接实现到具有禁用属性的输入复选框中。

但是,为了更新复选框和指定字段,您必须通过 ajax POST 命令(通过 Jquery 或其他方式)将值更新到后端,或者您必须更改表单的行为/查看并且必须通过保存来更新。

希望这可以帮助。

于 2012-09-30T16:18:09.127 回答