1

マルチインラインでsmart_selectsを使用するにはどうすればよいですか管理者のdjangoで選択(国を選択)し、この国の都市をインラインで表示する必要があります

私が使う :

smart_selects : django_smart_selects_711-1.0.0.dist-info

fieldsets_with_inlines : django_fieldsets_with_inlines-0.5

私が必要なものを見る



class Country(models.Model): 
    status_choice = (
        (1, 'Supprimé'),
        (2, 'Désactivé'),
        (3, 'Activé'),
    )

    nom = models.CharField(max_length=100, blank=False,verbose_name="Nom")
    continents = models.ForeignKey(Continents, on_delete=models.CASCADE,verbose_name="Continents")
    region = models.ManyToManyField(RegionsMonde,verbose_name="Région")
    superficie = models.CharField(max_length=100, blank=True,verbose_name="Superficie")
    population = models.CharField(max_length=100, blank=True,verbose_name="Population")
    capitale = models.CharField(max_length=100, blank=True,verbose_name="Capitale")
    devise = models.CharField(max_length=100, blank=True,verbose_name="Devise")
    LangueOfficielle = models.CharField(max_length=100, blank=True,verbose_name="Langue(s) officielle(s)")
    formeEtat = models.CharField(max_length=100, blank=True,verbose_name="Langue(s) officielle(s)")
    chefEtat = models.CharField(max_length=100, blank=True,verbose_name="Chef de l'Etat")
    feteNationale = models.CharField(max_length=100, blank=True,verbose_name="Fête nationale")
    monnaie = models.CharField(max_length=100, blank=True,verbose_name="Monnaie")
    cgPm = models.CharField(max_length=100, blank=True,verbose_name="Chef du Gouvernement/Premier Ministre")
    ministreTutelle = models.CharField(max_length=100, blank=True,verbose_name="Ministre(s) de tutelle")
    lienMinistre = models.CharField(max_length=100, blank=True,verbose_name="Lien du Ministère")
    nbrUniversits = models.CharField(max_length=100, blank=True,verbose_name="Nbr d'Universités")

    status = models.IntegerField(choices=status_choice,default=3)

    def __str__(self):  # __unicode__ for Python 2
        return self.nom
    class Meta:
        ordering = ('nom',)
        verbose_name = 'Pays'
        verbose_name_plural = 'Pays'

    def regionName(self):
        return ', '.join([r.nom for r in self.region.all()])
    regionName.short_description = "Regions"




class City(models.Model):

    nom = models.CharField(max_length=100, blank=False)
    country = models.ForeignKey(Country, on_delete=models.CASCADE)

    def __str__(self):
        return self.nom
    class Meta:
        unique_together = ('country', 'nom')

        verbose_name = 'City'
        verbose_name_plural = 'Cities'

4

1 に答える 1

0

私はJqueryで解決策を見つけました。おそらく誰かが同じ問題を抱えているので、テーブルcountryに列foreignkey cityを追加して結果を回復し、forループでインライン都市フィールドに入れます

id_city は admin django の非表示フィールドです

$(document).ready(function() {

    $("#id_country").change(function() {

            setTimeout(function() {
                    var $total_cities = $("#id_city ").val() for (i = 0; i < $total_cities; i++) {
                        var $options_id_city = $("#id_city > option").clone();


                        $('#id_citie_set-' + i + '-city > option').remove();

                        $('#id_citie_set-' + i + '-city').append($options_id_etat);
                    }


                }

                , 200); // wait for smart select to charge 


        }

    );
});
于 2020-06-04T21:59:26.303 に答える