根据外键选择在django-admin中填充值 [英] Populating values in django-admin based on a foreign key selection

查看:411
本文介绍了根据外键选择在django-admin中填充值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个外键引用的模型看起来像这样

I have a model with a foreign key reference that looks something like this

class Plan(models.Model):
    template = models.ForeignKey(PlanTemplate)
    throttle = models.IntegerField(default=10)
    rate_limit = models.BigIntegerField(default=60)

和外键模型:

class PlanTemplate(models.Model):
    name = models.CharField(max_length=50)
    throttle = models.IntegerField(default=10)
    rate_limit = models.BigIntegerField(default=60)

我希望在PlanTemplate是PlanTemplate是自动填充计划管理页面上的油门和rate_limit选择。这是一个django-admin可以轻松做到这一点吗,或者我必须覆盖管理模板并添加一些自定义javascript?

I'd like to have the throttle and rate_limit on the Plan admin page be auto-populated when a PlanTemplate is selected. Is this something django-admin can easily be made to do, or do I have to override the admin template and add some custom javascript?

我正在运行Django 1.2.4

I am running Django 1.2.4.

推荐答案

我找到了一种方法来做到这一点,但它不得不涉及到JavaScript,这实际上很简单。我在templates / admin / billing /目录中创建了一个change_form.html,看起来像这样。

I found a way to do this, but it had to involve javascript, which was actually pretty straight forward. I created a change_form.html in the templates/admin/billing/ directory which looked like this.

{% 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 %}

这个视图只是将id传入,查询并将其返回给该呼叫。像一个魅力一样。

which hits a view that simply takes the id passed in, queries it up and returns it to the call. Works like a charm.

这篇关于根据外键选择在django-admin中填充值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆