Я делаю заказ на работу. В рабочем задании вы можете выбрать набор инструментов, которые будете использовать.
class WorkOrder( models.Model ):
job_type_choices = (
( '1', 'Mechanical' ),
( '2', 'Electrical' ),
( '3', 'Instrumentation' ),
)
tools = models.ManyToManyField( Equipment, related_name='tools', blank=True, null=True )
job_type = models.CharField( max_length=45, choices=job_type_choices )
Теперь пользователь может создать шаблон рабочего задания.
class WorkOrderTemplate( models.Model ):
job_type_choices = (
( '1', 'Mechanical' ),
( '2', 'Electrical' ),
( '3', 'Instrumentation' ),
)
tools = models.ManyToManyField( Equipment ) #set all the default tools here
job_type = models.CharField( max_length=45, choices=job_type_choices )
Каждый раз, когда вы изменяете значение job_type, который представляет собой выпадающий список, вы загружаете все инструменты, которые вы выбрали в шаблоне рабочего задания, с тем же выбранным вами job_type.
Используемый виджет FilteredMultipleChoice:
tools = ModelMultipleChoiceField(
queryset=Equipment.objects.all(),
widget=widgets.FilteredSelectMultiple( "Tools", is_stacked=False ),
required=False )
Я знаю, как переопределить значение простого ввода текста, но я не знаю, как переопределить выбранные значения в этом случае. Для этого я использовал jquery.
Заранее спасибо:)