【发布时间】:2022-07-01 14:14:56
【问题描述】:
我有一些模型:
from django.db import models
class Deviation(models.Model):
name = models.CharField(max_length=100)
def calc(self):
# some calculation
return 1
然后我添加了一个运行calc 方法的按钮(覆盖更改表单):
{% extends 'admin/change_form.html' %}
{% block submit_buttons_bottom %}
{{ block.super }}
<div class="submit-row">
<input type="submit" value="Calculate" name="calc">
</div>
Calculation result: {{ result }}
{% endblock %}
这个模型在管理员中注册,处理calc按钮提交(通过extra_context):
@admin.register(Deviation)
class DeviationAdmin(admin.ModelAdmin):
change_form_template = 'admin/deviations_change_form.html'
list_display = '__str__',
def response_change(self, request, obj):
if "calc" in request.POST:
obj.save()
result = obj.calc()
return self.change_view(request, str(obj.id), form_url='', extra_context={'result': result})
return super().response_change(request, obj)
这里发生了问题(递归)。我无法通过extra_context 呈现带有结果的更改视图。
如何通过 extra_context 来改变视图?
【问题讨论】:
标签: django