#python #django
Вопрос:
Я пытаюсь составить динамический список вариантов. То есть выбор меняется на основе предыдущего ответа. Например, если country = ["USA", "Canada", "Mexico"]
затем нажать «США», будет сгенерирован список из 50 штатов США, state = ["Alabama", "Alaska"]
. Однако я попытался сделать утверждение if, которое, похоже, не сработало. Я не уверен, что это лучший вариант для этого.
class Property(models.Model):
address = CharField(max_length = 200)
city = CharField(max_length = 200)
COUNTRY_LIST = [
("USA", "United States"),
("CAN", "Canada")
]
country = CharField(max_length = 3, choices = COUNTRY_LIST)
USA_STATE_LIST = [
("AL", "Alabama"),
("AK", "Alaska"),
("AZ", "Arizona")
]
CAN_STATE_LIST = [
("AL", "Alberta"),
("BC", "British Columbia")
]
state = CharField(max_length = 2, choices = ?)
Комментарии:
1. Я бы сказал, чтобы поместить записи в отдельную таблицу под названием страна в базе данных, а затем использовать внешний ключ country_id для другой таблицы состояний. Таким образом, вы можете искать идентификатор страны в таблице государств.
2. Спасибо, не могу поверить, что я об этом не подумал.
Ответ №1:
Я думаю, нам, возможно, придется пересмотреть вашу модель.
государство
class State(models.Model)
name = models.CharField(max_length=100)
Страна
class Country(models.Model)
name = models.CharField(max_length=100)
и используйте это в модели свойств
class Property(models.Model):
address = CharField(max_length = 200)
city = CharField(max_length = 200)
country = models.ForeignKey(Country,on_delete=Bla)
state = models.ForeignKey(State,on_delete=Bla)