Заставить булево поле изменяться на основе ввода другого поля в другой форме и модели

Я пытаюсь заставить поле Status booeleanField в классе References изменяться в зависимости от ввода выбора в поле action charfield в классе Ecran после отправки формы. Например, если я выбираю "sortir pour production" в поле действия, поле Status автоматически меняется на False, а если я выбираю "retour en stock", оно меняется на true. Также я хочу изменить значения false/true булевого поля status, чтобы они отображались в шаблоне list_references как простые значки индикатора, красный круг для false и зеленый для true.

list_references pageenter image description here

NOTE: столбец ETAT - это поле Status booleanField в классе References.

suivi_ref форма с полем действияenter image description here

форма, которая имеет булево поле Status curerntly i can only change it from hereenter image description here

models.py

class References(models.Model):
    Ref = models.CharField(max_length=255, blank=False, null=True)
    Designation = models.CharField(max_length=100, blank=False, null=True)
    Indice = models.CharField(max_length=100, blank=False, null=True)
    Emplacment = models.ForeignKey(place, blank=False, null=True, on_delete=models.SET_NULL)
    Num = models.ForeignKey(Rayons, blank=True, null=True, on_delete=models.SET_NULL)
    Client = models.ForeignKey(Client, blank=False, null=True, on_delete=models.CASCADE)
    Statut = models.BooleanField(default=True)


    def __str__(self):
        return self.Ref


Action_choice = (
    ('Sortie pour production', 'Sortie pour production'),
    ('Retour en stock', 'Retour en stock'),
)

BOOL_CHOICES = ((True, 'OK'), (False, 'NOT OK'))

class Ecran(models.Model):
    Nom_de_technicien = models.CharField(max_length=255, blank=True, null=True)
    Nom_de_CQ = models.CharField(max_length=255, blank=True, null=True)
    Controle_Tension_1 = models.IntegerField(blank=False, null=True)
    Controle_Tension_2 = models.IntegerField(blank=False, null=True)
    Controle_Tension_3 = models.IntegerField(blank=False, null=True)
    Controle_Tension_4 = models.IntegerField(blank=False, null=True)
    Controle_Tension_5 = models.IntegerField(blank=False, null=True)
    Controle_Visuelle = models.BooleanField(default=False, choices=BOOL_CHOICES)
    action = models.CharField(max_length=255, blank=False, null=True, choices=Action_choice)
    References = models.ForeignKey(References, on_delete=models.CASCADE, blank=True, null=True)
    Date = models.DateTimeField(default=timezone.now, editable=True, )

    def __str__(self):
        return str(self.References)

views.py

def Ajouter_references(request):
    form = ReferencesCreateform(request.POST or None)

    if form.is_valid():
        form.save()
        messages.success(request, 'Ajouté avec succès')
        return redirect('/list_references')
    context = {
        "form": form,
        "title": "Ajouter des References",
    }
    return render(request, "Ajouter_references.html", context)

def suivi_ecran(request):
    header = 'Suivi des Ecrans'
    form = EcranCreateform(request.POST or None)
    queryset = Ecran.objects.all()
    if form.is_valid():
        form.save()
        return redirect('/list_references')
    context = {
        "header": header,
        "queryset": queryset,
        "form": form,
    }
    return render(request, "suivi_ref.html", context)

list_references.html

<form method='POST' action=''>{% csrf_token %}
    {{form|crispy}}
        <input type="submit" value='Search'/>
      <br><br>
         <a href="/Ajouter_references"><div class="btn btn-primary mybutton">Ajoute Référence</div></a><br><br>
</form>
<br>
  <table class='table'>
        <thead>
          <tr>
            <th>REF</th>
            <th>DESIGNATION</th>
            <th>INDICE</th>
            <th>EMPLACEMENT</th>
            <th>NUM</th>
            <th>CLIENT</th>
            <th>LOCATION</th>
            <th>ETAT</th>
            <th>SUIVI</th>
            <th>SUPPRIMER</th>
          </tr>
        </thead>
      {% for instance in queryset %}
          <tr>
              <td><a href="{% url 'update_ref' instance.id %}">{{instance.Ref}}</a></td>
              <td>{{instance.Designation}}</td>
              <td>{{instance.Indice}}</td>
              <td>{{instance.Emplacment}}</td>
              <td>{{instance.Num}}</td>
              <td>{{instance.Client}}</td>
              <td><div class="dropdown">
                      <button class="dropbtn">Dropdown</button>
                      <div class="dropdown-content">
                        <a href="#">Led 1</a>
                        <a href="#">Led 2</a>
                        <a href="#">Led 3</a>
                      </div>
                    </div>
                    </td>
              <td>{{instance.Statut}}</td>
              <td><a href="{% url 'suivi_ref' %}"><BUTTON>SUIVI L'ECRAN</BUTTON></a></td>
              <td><a href="{% url 'delete_ref' instance.id %}"><img src="{% static 'img/del.png' %}"></a></td>
          </tr>
      {% endfor %}
    </table>
  </div>

suivie_ref.html

<main role="main" class="container">
  <div class="jumbotron">
    <h1>{{ header }}</h1>
  <form method='POST' action=''>{% csrf_token %}
        {{form|crispy}}
        <input type="submit" value='Save'/>
    </form>
  </div>

</main>

Ajouter_references.html

<main role="main" class="container">
  <div class="jumbotron">
    <h1>{{ title }}</h1>
  <form method='POST' id="ReferencesCreateform" data-rayons-url="{% url 'ajax_load_rayons' %}" novalidate >
      {% csrf_token %}
        {{form|crispy}}
        <input type="submit" value='Save'/>
    </form>

  </div>
Вернуться на верх