【发布时间】:2013-12-14 18:02:25
【问题描述】:
假设我有一个这样的模型:
class Foo(models.Model):
name = models.CharField(max_length=50)
year = models.IntegerField(max_length=4)
some_value = models.IntegerField(default=0)
和
class Bar(models.Model)
name = models.CharField(max_length=50)
foo = models.ForeignKey(Foo)
然后我使用 FooAdmin 类在 django AdminSite 中注册我的模型:
class FooAdmin(admin.ModelAdmin):
list_display = ['name', 'year', 'some_value']
它工作正常,但出于某种原因,我需要为我的管理站点中的每个 Foo 行添加两个按钮。假设我称它们为“Related_button”和“Action_button”
我需要这些按钮位于每一行中,并且表现如下:
-当用户点击“Related_button”时,他被重定向到 django 管理站点,其中列出了与特定 Foo 对象相关的所有 Bars
- 当用户点击“Action_button”时,类 Foo 对象中的 some_value 字段设置为自定义值,例如 15。但在此之前,应出现确认弹出窗口(您确定吗?y/n)。
如何做到这一点?我发现我可以这样做:
def button(self, obj):
return '''<input type="button" value="button" />'''
button.short_description = 'Action'
button.allow_tags = True
list_display = ['name', 'year', 'some_value', 'action']
在我的 FooAdmin 中,这会导致每行中出现一个按钮。但是如何为该按钮设置操作?
【问题讨论】: