实例上的Django更改列表单击重定向到实例的外键模型

时间:2014-09-04 11:14:50

标签: django django-models django-admin django-views

我有2个型号:

class Offer:
    code = ...
    company = ....

class Product:
    price = models.DecimalField
    name = models.CharField
    offer = models.ForeignKey(Offer)

在admin中,在显示所有Products实例的changelist视图中,我希望当您单击Product实例时,您将在changeview上重定向,以编辑Product的外键所指向的Offer。

1 个答案:

答案 0 :(得分:2)

您应该覆盖change_view的{​​{1}}方法,如下所示:

ModelAdmin

from django.contrib import admin from django.shortcuts import redirect from yourapp.models import Product class ProductAdmin(admin.ModelAdmin): def change_view(request, object_id, form_url='', extra_context=None): return redirect( "admin:yourapp_offer_change", args=(Product.objects.get(pk=object_id).offer.pk,) ) admin.site.register(Product, ProductAdmin) 替换为您拥有yourappOffer模型的Django应用程序的名称。