我知道您可以根据其他字段预先填充管理表单字段。例如,我有一个slug字段,它是根据title字段自动填充的。
不过,我还想根据日期进行其他自动预填充。例如,我有一个URL字段,我希望它自动设置为http://example.com/20090209.mp3,其中20090209是YYYYMMDD。
我还希望有一个文本字段,自动以“Hello my name I s author”开头,其中author是当前用户的名称。当然,我也希望此人能够编辑该字段。关键是让用户可以更容易地填写管理表单,而不仅仅是让字段完全自动。
Tags:
Django内置的预填充字段功能是硬编码的,不能真正用于更一般的用途。
您需要编写自己的Javascript函数来进行预填充。将其包含在管理页中的最佳方法是将其包含在自定义表单或Widget的inner Media class中。然后需要自定义ModelAdmin subclass以使用自定义窗体或小部件。最后,您需要呈现一些内联Javascript和每个预填充的字段,以便注册onchange处理程序并告诉它要从哪个其他字段进行填充;我将通过自定义小部件呈现这一点。若要使其美观并具有声明性,可以使用自定义ModelAdmin属性(类似于预填充字段),并重写ModelAdmin.formfield_for_dbfield以创建小部件并传入有关应从哪个字段预填充的信息。
这种管理黑客攻击几乎总是可能发生的,但是(从这个复杂的摘要中可以看出)很少是简单的,特别是如果您正在努力使代码很好地封装起来。
我知道你可以通过GET预先填充一些值,它将是这样的
我在日期字段上有些问题,但是,也许这能帮到你。
我最近为此使用了Django的ModelAdmin.get_form方法。
你应该小心副作用,因为你是操纵基地场直接。
相关问题 更多 >
编程相关推荐