从Django管理面板中点击API

时间:2018-11-28 11:33:44

标签: django django-admin django-admin-actions

在Django管理面板中。我有一个模型,其中包含用户ID,名称,状态等字段。选择status =“ approved”后,我想调用一个API(例如:www.xyx.com?user = userID&status ='approved'),然后单击保存按钮。

1 个答案:

答案 0 :(得分:2)

您可以在ModelAdmin中覆盖save_model()方法。从那里,您可以在将保存操作本身委派给父类之前发出API请求。

例如,假设您的模型类名为MyModel,并且您正在使用Requests库来调用API:

from django.contrib import admin
import requests

class MyModelAdmin(admin.ModelAdmin):

    def save_model(self, request, obj, form, change):
        if obj.status == 'approved':
            # Make the API call
            requests.get('http://www.example.com', params={'user': obj.userID, 'status': 'approved'})
        # Delegate the save to the parent class
        super().save_model(request, obj, form, change)