Я очень новичок в Python и Django, поэтому у меня возникла эта проблема. То, что я хочу сделать, это создать поведение тега HTML Select с формой Django. Этот выпадающий список должен быть заполнен значениями из базы данных.
У меня уже есть location = forms.ModelChoiceField(queryset = MyModel.objects.all())
, который дает мне элемент управления select / drowpdown, но мне нужно, чтобы он отображал одно значение из базы данных и имел другое значение в качестве фактического значения (оба из одной таблицытолько разные столбцы)
То, что я имею в виду в HTML-коде, будет выглядеть так:
<select>
<option value="1">Berlin</option>
<option value="2">New York</option>
<option value="3">London</option>
<option value="4">Riga</option>
</select>
Итак, используя форму, я вижу название города, например. Лондон, но когда он выбран, и отправить называется, я вставляю в базу данных 3.
Жду ваших предложений.
РЕДАКТИРОВАТЬ:
class Event(models.Model):
eventid = models.AutoField(primary_key=True)
date = models.DateField(blank=True, null=True)
time = models.TimeField(blank=True, null=True)
description = models.CharField(max_length=2000, blank=True, null=True)
price = models.IntegerField(blank=True, null=True)
locationid = models.ForeignKey(Location, models.DO_NOTHING, db_column='locationid', blank=True, null=True)
class Meta:
managed = False
db_table = 'event'
class Location(models.Model):
locationid = models.AutoField(primary_key=True)
name = models.CharField(max_length=256, blank=True, null=True)
capacity = models.IntegerField(blank=True, null=True)
type = models.CharField(max_length=256, blank=True, null=True)
cityid = models.ForeignKey(City, models.DO_NOTHING, db_column='cityid', blank=True, null=True)
class Meta:
managed = False
db_table = 'location'
Итак, у меня естьссылка на идентификатор другой таблицы, из которой я хочу получить имя местоположения и заполнить выбор / выпадающий с этими именами. Когда пользователь делает выбор, он должен принимать не имя, а целое число / идентификатор. Имеет ли это смысл?