django-admin:如何在对象保存后重定向到另一个URL?

时间:2017-02-14 15:46:26

标签: django django-admin

在Django Admin中,保存对象总是返回到它的对象列表。 现在我想在保存付款对象时转到发票对象列表。

我尝试了几件事:

在admin.py中:

$('td.ms-formbody + td.ms-formlabel').text('This is my dynamically added text!');

OR

@receiver(post_save, sender=Payment)
def custom_redirect(sender, instance, **kwargs):
    return HttpResponseRedirect('/admin/sales/invoice')

而不是HttpResponseRedirect我试过使用redirect(),但也没有效果。 在将错误的代码插入post_save时,我收到一条错误消息 - 因此它会被触发,但重定向不会发生。

任何提示都会非常令人沮丧 - 因为我在这个“简单”问题上被困了几天。

由于

1 个答案:

答案 0 :(得分:8)

您可以覆盖response_addresponse_change方法。

'use strict';
module.exports = function (City) {
City.GetCurrentPopulation = function (req) {
var population;
City.app.models.Pupulation.find({where{id:req.id}}, //This line //gives me an error that cannot read property 'find' of undefined 
function(req.res){
population=res.population;
});
response='Population for ' +req.cname ' is' +population;
req(null, response);
};
City.remoteMethod(
    'GetCurrentPopulation', {
      http: {
        path: '/GetCurrentPopulation',
        verb: 'GetCurrentPopulation'
      },
      returns: {
        arg: 'startdate',
        type: 'string'
      }
    }
  );

无法从信号处理程序内部返回响应。您不希望覆盖from django.shortcuts import redirect class PaymentAdmin(VersionAdmin, admin.ModelAdmin): def response_add(self, request, obj, post_url_continue=None): return redirect('/admin/sales/invoice') def response_change(self, request, obj): return redirect('/admin/sales/invoice') ,因为它会处理保存表单以及返回响应。