Как отобразить данные в одном столбце двух полей модели в зависимости от варианта, выбранного из радиокнопки в Django?

У меня вопрос. Получается, что у меня есть форма, в которой при нажатии на радиокнопку включаются определенные входы, а при нажатии на другой вариант радиокнопки появляются другие входы

Входы сохраняют разную информацию в зависимости от варианта, выбранного в радиокнопках, например, в одном входе нужно поставить имя человека, в другом - название корпорации. При отображении информации в списке я бы хотел, чтобы в колонке было написано "Имя" и отображалось либо имя клиента, либо название корпорации. Я не хотел бы размещать две колонки, в одной из которых написано имя клиента, а в другой название корпорации, но только в одной, в которой написано имя, они отображаются. Как я могу это сделать?

Вот как у меня выглядит мой html

Two columns

и вот как я хотел бы, чтобы это было

One Column

html


<form method="post">
  {% csrf_token %}
  <div class="d-flex justify-content-between">
     <a href="{% url 'Clientes:clientes_add' %}">
     <button type="button" class="btn btn-success mb-3 waves-effect waves-light" onclick="addNewCustomer()">Add new</button>
     </a>
     <div class="col-md-6 mb-3 d-flex align-items-center">
        <label class="m-0 col-md-2 text-right">Date range:&nbsp;&nbsp;</label>
        <input type="date" name="fromdate" class="form-control">
        <input type="date" name="todate" class="form-control">
        <input type="submit" value="Search" class="btn btn-light">
     </div>
  </div>
  <div class="card">
  <div class="card-body">
     {% if clientes %}
     <div class="table-rep-plugin">
        <div class="table-responsive mb-0" data-pattern="priority-columns">
           <table id="tech-companies-1" class="table">
              <thead>
                 <tr>
                    <th>Customer ID</th>
                    <th data-priority="1">Customer type</th>
                    <th data-priority="1">Name</th>
                    <th data-priority="1">Corporation Name</th>
                    <th>Register since</th>
                    <th data-priority="1">Actions</th>
                 </tr>
              </thead>
              <tbody>
                 {% for cliente in clientes %}
                 <tr>
                    <td>{{cliente.id}}</td>
                    <td>{{cliente.tipo}}</td>
                    <td>{{cliente.nombre}}</td>
                    <td>{{cliente.corporacion}}</td>
                    <td>{{cliente.fecha_registro}}</td>
                    <td>
                       <a href="{% url 'Clientes:clientes_detail' cliente.id%}"><i class="uil-search-alt font-size-18"></i></a>
                    </td>
                    <td>
                       <a href="{% url 'Clientes:clientes_edit' cliente.id%}"><i class="uil-edit-alt font-size-18"></i></a>
                    </td>
                    <td>
                       <a href="{% url 'Clientes:clientes_delete' cliente.id%}" class="text-danger"><i class="uil uil-trash-alt font-size-18"></i></a>
                    </td>
                 </tr>
                 {% endfor %}
              </tbody>
           </table>
        </div>
     </div>
     {% endif %}
  </div>
</form>

model.py

class Clientes(models.Model):
   tipo = models.CharField(max_length=200)
   corporacion=models.CharField(max_length=200,blank=True)
   nombre = models.CharField(max_length=200, blank=True)
 
   


   def __str__(self):
       return f'{self.nombre}'

forms.py



TIPO = (
   ('Corporativo', 'Corporativo'),
   ('Persona', 'Persona'),
)





class ClientesForm(forms.ModelForm):

   tipo = forms.ChoiceField(
       choices=TIPO,
       widget=forms.RadioSelect(attrs={'class':'custom-radio-list'}),

   )

  
   class Meta:
       model = Clientes
       fields = ['tipo','nombre','corporacion']
    
       widgets = {

          
           'corporacion': forms.TextInput(
               attrs={
                   'class': 'form-control'
               }
           ),
           'nombre': forms.TextInput(
               attrs={
                   'class': 'form-control'
               }
           ),
          
           

       }

Вернуться на верх