我正在编写代码以在 django 管理员中打开一个新窗口以添加模型实例并在保存时关闭。这与 ForeignKey field add(绿色加号)的行为非常相似,但没有选择新创建的模型实例(因为它不是外键字段)。
我添加的用于制作弹出链接的代码是:
link = '<a id="add_id_event" class="add-another" onclick="return showAddAnotherPopup(this);" href="%s?date=%s">add</a>' % ( addurl,currentdate)
我的模型称为事件。我正确添加了 RelatedObjectLookups.js
当我尝试保存此模型时,django 会应用与 ForeignKey 字段相同的代码,并尝试激活我没有的 SelectBox。这会导致 javascript 在到达 window.close() 之前失败
我尝试使用覆盖 save_model 函数
def save_model(self, request, obj, form, change):
if request.GET.get('_popup') == '1':
obj.save()
return HttpResponse('<script type="text/javascript">window.close()</script>')
使用此代码,但忽略 HttpResponse 调用,django 呈现默认值。例如
<script type="text/javascript">opener.dismissAddAnotherPopup(window, "14382", "TMC 2012\u002D02\u002D02 10:00:00 DDT2010B\u002D028");</script>
失败是因为没有目标 SelectBox 对象。
谢谢你的帮助。