Cas*_*tes 5 python django django-admin
我有一个带有外键引用的模型,看起来像这样
class Plan(models.Model):
template = models.ForeignKey(PlanTemplate)
throttle = models.IntegerField(default=10)
rate_limit = models.BigIntegerField(default=60)
Run Code Online (Sandbox Code Playgroud)
和外键模型:
class PlanTemplate(models.Model):
name = models.CharField(max_length=50)
throttle = models.IntegerField(default=10)
rate_limit = models.BigIntegerField(default=60)
Run Code Online (Sandbox Code Playgroud)
我希望在选择 PlanTemplate 时自动填充计划管理页面上的throttle 和rate_limit。这是 django-admin 可以轻松做到的事情,还是我必须覆盖管理模板并添加一些自定义 JavaScript?
我正在运行 Django 1.2.4。
我找到了一种方法来做到这一点,但它必须涉及 JavaScript,这实际上非常简单。我在 templates/admin/billing/ 目录中创建了一个change_form.html,如下所示。
{% extends "admin/change_form.html" %}
{% block extrahead %}
<script src="{{MEDIA_URL}}js/jquery.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#id_template').change(function() {
$.ajax({
type: 'POST',
url: "{% url get_template_info %}",
data: {'template_id': $('#id_template').val()},
success: function(data, _status) {
$('#id_throttle').val(data.throttle);
$('#id_rate_limit').val(data.rate_limit);
$('#id_product').val(data.product);
$('#id_tier_group').val(data.tier_group);
},
dataType: "json"
});
});
});
</script>
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
它会触发一个视图,该视图仅获取传入的 id,对其进行查询并将其返回给调用。奇迹般有效。
| 归档时间: |
|
| 查看次数: |
2132 次 |
| 最近记录: |