我的表单中有一个ChoiceField。下拉菜单中显示的选项等于“行业名称-频率”(例如,汽车维护-年度)。我希望下拉列表中的选项仅等于我初始化的选项的频率字段中的值(例如,年度)。
Models.py
class IndustryFrequency(models.Model):
industryname = models.ForeignKey(Industry, on_delete=models.CASCADE)
frequency = models.CharField()
def __str__(self):
return '{} - {}'.format(self.industryname, self.frequency)
Forms.py
class UserOrderForm(forms.Form):
frequency = forms.ChoiceField()
def __init__(self, *args, **kwargs):
super(UserOrderForm, self).__init__(*args, **kwargs)
self.fields['frequency'].choices = [(t.id, t) for t in IndustryFrequency.objects.filter(industryname=industry)]
感谢您的帮助!
答案 0 :(得分:1)
构造choices
时,请以(t.id, t.frequency)
的形式给出。
就这样
[(t.id, t.frequency) for t in IndustryFrequency.objects.filter(industryname=industry)]
选择的元组代表:(要保留的值,下拉菜单中显示的内容)。