Я создал узел и запланированные модели действий с отношением manyTomany:
class Node(models.Model):
name = models.CharField(default='node', max_length=32)
nb_solenoid = models.DecimalField(max_digits=19, decimal_places=10, null=True, blank=True)
connexion = models.CharField(max_length=255)
class ScheduledAction(models.Model):
date = models.DateTimeField(default=datetime.now, blank=True)
firm = models.ForeignKey('firme.Firme', on_delete=models.CASCADE, null=True, blank=True)
node_ids = models.ManyToManyField(Node)
В forms.py:
class ScheduledActionForm(forms.ModelForm):
date = forms.DateTimeField()
firm = forms.ModelChoiceField(queryset=Firme.objects.all())
node_ids = forms.ModelMultipleChoiceField(queryset=Node.objects.filter(), widget=forms.CheckboxSelectMultiple)
class Meta:
model = ScheduledAction
fields = [
'date',
'firm',
'node_ids'
]
в views.py:
def planification_view(request):
scheduledAction = ScheduledActionForm(request.POST or None)
nodes = Node.objects.all()
if scheduledAction.is_valid():
scheduledAction.save()
print('formulaire enregistre')
scheduledAction = ScheduledActionForm()
context = {
'form': scheduledAction,
'nodes': nodes
}
return render(request, "node/planification.html", context)
Представление работает нормально, но сколько узлов я проверяю, оно всегда сохраняет все узлы в поле «многие ко многим».Как сделать так, чтобы он отправлял только выбранные поля?