2017-11-28 1 views
1

Ich möchte in django admin Die „Registrierung“ Feld nur aktivieren, wenn „Bindung“ wird als „ausgelagert“ ausgefüllt.wie ein Feld in django zu erstellen, die nur nach dem Befüllen in dem vorherigen aktiviert ist?

class Contato(models.Model): 

    BOND_CHOICES = (
     ('server', 'Servidor'), 
     ('outsourced', 'Terceirizado'), 
     ('trainee', 'Estagiário'), 
    ) 

    name = models.CharField(verbose_name='Nome', max_length=100) 
    date = models.DateField(verbose_name='Data de Nascimento') 
    email = models.CharField(verbose_name='Email', max_length=100) 
    branchLine = models.DecimalField(verbose_name='Ramal', max_digits=4, decimal_places=0) 
    bond = models.CharField(verbose_name='Vínculo', max_length=10, choices=BOND_CHOICES) 
    registration = models.CharField(verbose_name='Matrícula', max_length=20) 
+0

Sie müssen Javascript verwenden, es gibt nichts, was Sie serverseitig tun können, um dies zu erreichen. – knbk

Antwort

0

Sie müssen JavaScript verwenden, damit dies funktioniert. In diesem Beispiel habe ich Django admin jQuery verwendet. Und stellen Sie sicher, dass diese js in Modeladmin-Datei hinzufügen

admin.py

class ContatoAdmin(admin.ModelAdmin): 

    class Media: 
     js = ['/static/admin/js/admin-registration.js'] 

ich geschaffen habe admin-registration.js in static>admin>js Ordner.

django.jQuery(document).ready(function(){ 
    django.jQuery('#id_registration').attr('readonly', true) 
    django.jQuery('#id_bond').click(function(event) { 
     if (event.target.options[event.target.selectedIndex].text == 'Terceirizado') { 
      django.jQuery('#id_registration').attr('readonly', false) 
     } 
    }) 
}) 
Verwandte Themen