Hai letto the documentation? È piuttosto semplice. Dipende da come hai impostato il tuo continente/paese. Suggerirei qualcosa come django-cities-light, che fornisce tabelle popolate con paesi/regioni. Non penso che abbia continenti però.
Se non si vuole fare questo, è necessario impostare un modello di paese che ha una colonna per continente ID per esempio:
Continent(models.Model):
name = models.CharField()
Country(models.Model):
name = models.CharField()
continent = models.ForeignKey(Continent)
Poi nel modello Località impostare i campi in tal modo:
from smart_selects.db_fields import ChainedForeignKey
Location(models.Model):
newcontinent = models.ForeignKey(Continent)
newcountry = ChainedForeignKey(
Country, # the model where you're populating your countries from
chained_field="newcontinent", # the field on your own model that this field links to
chained_model_field="continent", # the field on Country that corresponds to newcontinent
show_all=False, # only shows the countries that correspond to the selected continent in newcontinent
)
Dalla documentazione:
Questo esempio asumes che il Modello Paese ha un continente = ForeignKey campo (continente) .
Il campo concatenato è il campo sullo stesso modello anche il campo deve essere concatenato. Il campo modello concatenato è il campo del modello concatenato che corrisponde al modello collegato anche dal campo concatenato.
Spero che abbia senso.