Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从django admin中选择的另一个foreignkey中筛选foreignkey字段?_Python_Django_Django Models_Foreign Keys - Fatal编程技术网

Python 从django admin中选择的另一个foreignkey中筛选foreignkey字段?

Python 从django admin中选择的另一个foreignkey中筛选foreignkey字段?,python,django,django-models,foreign-keys,Python,Django,Django Models,Foreign Keys,我有下一个型号 class Region(models.Model): nombre = models.CharField(max_length=25) class Departamento(models.Model): nombre = models.CharField(max_length=25) region = models.ForeignKey(Region) class Municipio(models.Model): nombre = model

我有下一个型号

class Region(models.Model):
    nombre = models.CharField(max_length=25)

class Departamento(models.Model):
    nombre = models.CharField(max_length=25)
    region = models.ForeignKey(Region)

class Municipio(models.Model):
    nombre = models.CharField(max_length=35)
    departamento = models.ForeignKey(Departamento)
我需要根据所选地区过滤部门中的选项,并根据所选部门过滤市政中的选项

这可能吗


谢谢大家

假设您在一系列选择框中谈论此操作:

创建两个视图,其中一个返回包含给定区域的departmentos的响应。另一个也是这样做的,只是针对一个部门的市政官员

# views.py
from django.core import serializers

def departamentos_por_region(request, region_id):
    region = get_object_or_404(Region, id=region_id)
    departamentos = Departamento.objects.filter(region=region)
    return render_to_reponse("format_as_option_list.html",
                             {'departamentos': departamentos})

def municipios_por_departamento(request, departamento_id):
    # basically the same as above
我假设您正在填充初始页面视图中的区域选择框,因此不需要特殊视图

模板应将DepartmentOS格式化为html选项列表

假设初始页面视图中的HTML如下所示:

<select id='regions'>
  <option value='1'>Region 1</option>
  <option value='2'>Region 2</option>
</select>
<select id='departamentos'>
</select>
<select id='municipios'>
</select>
对市政府和部门采取同样的措施

您可能还希望在没有可用选项时禁用字段,并处理没有返回部门或市政局的情况

// this isn't tested code and likely contains an error or two
$('#regions').change(function(){

    // Region has changed, so reset Departamentos and Municipios
    $('#departamentos').html("")
    $('#municipios').html("")

    // now update the departamentos
    $.get('/ajax/departamentos_por_region/' +  $('#regions').val(),
          function(data) {
              ('#departamentos').html(data)    
          };     
    );
});