单击查看模型后,如何在Django管理页面上更新模型?

时间:2018-08-15 15:03:44

标签: django python-3.x django-models django-admin

我有一个更新我的订单模型的函数。在我的admin.py中,我注册了模型,并有一个与之关联的admin.ModelAdmin类。我想调用一个在管理员页面上单击注册模型时运行的函数,以便在用户看到有关订单的任何信息之前对其进行更新。我试过只是添加功能:

class OrdersAdmin(admin.ModelAdmin):
    ...
    update_orders()

但是,这只是导致它在我运行服务器时被更新,而不是在管理员中单击“订单”模型时被更新。我已经研究过管理员actions,但这仅与在页面上填充Orders Model中的对象之后对模型的各个字段进行更改有关。 单击管理页面中的模型时,如何传递要调用的函数?谢谢。

1 个答案:

答案 0 :(得分:0)

我想最好的方法是重写模型See docs中的get_absolute_url方法。

def get_absolute_url(self):

    #update you orders here .....

    from django.urls import reverse
    return reverse('admin:yourapp_yourmodel_change', args=[str(self.id)])