gpt4 book ai didi

python - 从 django-admin 中选择另一个外键来过滤外键字段?

转载 作者:行者123 更新时间:2023-12-01 06:16:16 24 4
gpt4 key购买 nike

我有下一个型号

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)

我需要根据所选区域过滤Departamento中的选项,并根据所选Departamento过滤Municipio中的选项。

这可能吗?

谢谢大家!

最佳答案

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

创建两个 View ,其中一个返回包含给定区域的部门的响应。另一个执行相同的操作,但对于 Departamento 中的 Municipios

# 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

我假设您在初始页面 View 中填写“区域”选择框,因此不需要特殊 View 。

模板应将部门格式设置为 html 选项列表。

假设初始页面 View 中的 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>

您可以使用一些 javascript,例如(在 jQuery 中):

// 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)
};
);
});

对 Municipios 和 Departamentos 执行相同的操作。

您可能还想做一些事情,例如在没有可用选择时禁用字段,以及处理没有返回departamentos或municipios的情况。

关于python - 从 django-admin 中选择另一个外键来过滤外键字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3217556/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com