jquery - selects - select django
django smart_selects, el segundo nivel no poblarĂ¡ (3)
No puedo obtener el segundo nivel (subcategoría / E_cat) desplegable para rellenar. El primer nivel (Categoría) parece estar funcionando bien. Creo que he probado casi todas las combinaciones razonables de chained_field y chained_model_field selecciones sin éxito.
Quiero que la tabla Equip se rellene con la ID de la categoría y la ID de la subcategoría.
A continuación se muestra el aspecto actual del modelo. ¿Qué estoy haciendo mal?
model.py
class Category(models.Model):
cat_no = models.IntegerField(null=True, blank=True)
cat_txt = models.CharField(max_length=45)
def __unicode__(self):
return self.cat_txt
class E_cat(models.Model):
cat_no = models.ForeignKey(Category)
cat_txt = models.CharField(max_length=45)
scat_no = models.IntegerField(null=True, blank=True)
scat_txt = models.CharField(max_length=45)
def __unicode__(self):
return self.scat_txt
class Equip(models.Model):
category = models.ForeignKey(Category)
subcategory = ChainedForeignKey(
E_cat,
chained_field="category",
chained_model_field="cat_no",
show_all=False,
auto_choose=True,
)
manufacturer = models.CharField(max_length=35, blank=True)
mfg_no = models.CharField(max_length=35, blank=True)
size = models.CharField(max_length=35, blank=True)
color = models.CharField(max_length=35, blank=True)
quanity = models.IntegerField(null=True, blank=True)
short_description = models.CharField(max_length=80, blank=True)
location_zip = models.IntegerField(null=True, blank=True)
listings = models.ForeignKey(Listings)
info = models.TextField(null=True, blank=True)
Esto se ve bien. El problema podría ser que no ha configurado las URL de smart_selects, o quizás le falta el javascript en su página real.
ACTUALIZACIÓN - MAYO 2017
incluir esta etiqueta justo después de jQuery versión 2. Funciona perfectamente bien en las versiones de Django 1.10 y 1.11 utilizando Python 3.5.2. Espero que esto te ayude
<script type="text/javascript" src="{% static ''smart-selects/admin/js/chainedfk.js'' %}"></script>
<script type="text/javascript" src="{% static ''smart-selects/admin/js/chainedm2m.js'' %}"></script>
<script type="text/javascript" src="{% static ''smart-selects/admin/js/bindfields.js'' %}"></script>
html.file
incluya lo siguiente si usa formularios
<script src="{% static ''smart-selects/admin/js/chainedfk.js'' %}"></script>
<script src="{% static ''smart-selects/admin/js/chainedm2m.js'' %}"></script>
models.py
class Continent(models.Model):
name = models.CharField(max_length=255)
def __str__(self):
return self.name
class Country(models.Model):
continent= models.ForeignKey(Continent)
name = models.CharField(max_length=255)
def __str__(self):
return self.name
class City(models.Model):
continent= models.ForeignKey(Continent)
country= ChainedForeignKey(Country, chained_field="continent", chained_model_field="continent", show_all=False, auto_choose=True, sort=True)
name = models.CharField(max_length=255)
def __str__(self):
return self.name
class Neighborhood(models.Model):
continent= models.ForeignKey(Continent)
country= ChainedForeignKey(Country, chained_field="continent", chained_model_field="continent", show_all=False, auto_choose=True, sort=True)
name = models.CharField(max_length=255)
city= ChainedForeignKey(City, chained_field="country", chained_model_field="country", show_all=False, auto_choose=True, sort=True)
name = models.CharField(max_length=255)
def __str__(self):
return self.name
admin.py
admin.site.register(Component)
admin.site.register(Group)
admin.site.register(Failure)
admin.site.register(Neighborhood)