ell*_*lly 1 django django-models django-forms
我正在尝试构建一个显示动态选择的表单
我如何建立一个表格,其中运动员的运动是一个选择字段,其中填充了与运动员参加的事件相关的运动......
我的模型如下...
class Sport(models.Model):
Type = models.CharField(max_length=15)
class EventCode(models.Model):
Description = models.CharField(max_length=95)
Sports = models.ManyToManyField(Sport)
class Athlete(models.Model):
Event = models.ForeignKey(EventCode)
Sport = models.ForeignKey(Sport)
Run Code Online (Sandbox Code Playgroud)
我假设您在构建表单时知道事件代码这是您过滤的方式EventCode:
sport_choices = EventCode.objects.filter(pk=event).values_list('Sports','Sports__Type')
Run Code Online (Sandbox Code Playgroud)
假设事件是跳跃,那么你会得到 [(5,'long jump'),(7,'frog jump')....]
现在你设置相关选项的方式是
Class AthleteForm(ModelForm):
class Meta:
model = Athlete
def __init__(self,*args, **kwargs):
super(AthleteForm, self).__init__(*args, **kwargs)
event = kwargs['event']
self.fields['Event'].initial = event
self.fields['Sport'].choices = EventCode.objects.filter(pk=event).values_list('Sports','Sports__Type')
Run Code Online (Sandbox Code Playgroud)
如果您想event在表单中选择 an 时执行此操作,则可以为所选事件传递eventas ajax requestgeneratesport_choices并将其作为对 ajax 请求的响应返回。
| 归档时间: |
|
| 查看次数: |
2753 次 |
| 最近记录: |