gpt4 book ai didi

django - 表单字段取决于另一个字段值

转载 作者:行者123 更新时间:2023-12-03 22:44:15 25 4
gpt4 key购买 nike

# example objects:
# free
# paid
class ItemType(models.Model):
name = models.CharField(...)


class Item(forms.ModelForm):
title = models.CharField(...)
item_type = models.ForeignKey(ItemType)
destination_free = models.CharField(...)
destination_paid = models.CharField(...)

如何显示 destination_freedestination_paid字段取决于 item_type值(value)?所以如果 item_type是免费的,我的表格应该显示 destination_free但如果 item_type已付款,我的表格应显示 destination_paid field 。

最佳答案

由于我不知道您的整个代码,因此这只是客户端的基本逻辑。如果需要,您可以更改值:

  $('#id_destination_free').hide(); // destination_free field
$('#id_destination_paid').hide(); // destination_paid field

$('#id_item_type').on('change', function(){
var optionSelected = $("option:selected", this);
var valueSelected = this.value;
if (valueSelected == 'something') {
$('#id_destination_paid').hide();
$('#id_destination_free').show();
} else if (valueSelected == 'anotherthing') {
$('#id_destination_free').hide();
$('#id_destination_paid').show();
}
return false;
});

既然你想要 item_type对象作为表单中的选择框,这可能是您的 ModelForm :
class ItemForm(forms.ModelForm):
class Meta:
model = Item

def __init__(self, *args, **kwargs):
super(ItemForm, self).__init__(*args, **kwargs)
self.fields['item_type'] = forms.ModelChoiceField(queryset=ItemType.objects.all())

您可以在 html 文件中呈现它,例如:
{{ form.as_p }}

关于django - 表单字段取决于另一个字段值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37271442/

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