【问题标题】:How can I update a model on the Django admin page when the model is click to be viewed?单击以查看模型时,如何在 Django 管理页面上更新模型?
【发布时间】:2019-01-22 11:38:50
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案1】:

    我想最好的方法是覆盖模型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)])
    

    【讨论】:

      猜你喜欢
      • 2022-10-24
      • 2018-11-13
      • 2012-07-18
      • 2021-04-01
      • 2017-05-06
      • 1970-01-01
      • 1970-01-01
      • 2015-10-31
      • 1970-01-01
      相关资源
      最近更新 更多