我想扩展Django的管理面板,在那里为特定对象添加/更改,比如说Foo。 我已经做了很多研究,并在旧版本djangobook找到了讨论这个问题的部分。
我在我的模板目录中创建了一个admin / myapp / foo / change_list.html,并做了一些经验,比如添加一些html,效果很好。
这就是问题开始的地方,我需要调整这个管理显示的视图(没有覆盖整个事情,只是扩展它)所以,在change_list.html上有一个小的GET / POST表单,我想要做一个具体的行动,如:
说我有两个对象Foo和Bar:
class Bar(models.Model):
bar_text = models.TextField( )
class Foo(models.Model):
name = models.TextField( )
my_bar = models.models.ForeignKey( Bar)
在添加新Foo的常规管理界面时,我可以选择单个my_bar foreignKey,现在我想要在页面末尾的“添加到所有”的复选框,这会产生相同的输入(我的名字)示例)连接所有Bar对象。因此,在保存之后,我将有几个具有相同“名称”字段的Foo对象,每个对象具有不同的条形连接
答案 0 :(得分:0)
如果您知道如何扩展管理员(我假设您的帖子),您只需覆盖表单的save()方法,如果选中该复选框,它将更新所有foos。
def save(self):
if (self.cleaned_data['save_to_all']):
foos = Foo.objects.all()
for obj in foos:
obj.name = self.cleaned_data['name']
obj.save()
super(FooForm, self).save()
我是否理解你需要什么,或者我错过了什么?