В базе данных у меня есть 3 таблицы:
languages
cities
city_language
city_language Таблица:
+-------------+---------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+---------------------+------+-----+---------+-------+
| city_id | bigint(20) unsigned | NO | PRI | NULL | |
| language_id | bigint(20) unsigned | NO | PRI | NULL | |
| name | varchar(255) | NO | | NULL | |
+-------------+---------------------+------+-----+---------+-------+
Модель
class CityLanguage(models.Model):
city = models.ForeignKey('Cities', models.DO_NOTHING)
language = models.ForeignKey('Languages', models.DO_NOTHING)
name = models.CharField(max_length=255)
class Meta:
managed = False
db_table = 'city_language'
unique_together = (('city', 'language'),)
Модель не имеет поля идентификатора и первичного ключа, также в моей таблице нет есть идентификатор столбца. Если я запускаю этот код, я получаю сообщение об ошибке:
(1054, "Unknown column 'city_language.id' in 'field list'")
Если я определяю первичный ключ для столбца, значения этого столбца должны быть уникальными. Если я использую primary_key, когда хочу поставить один и тот же город на разных языках, я получу
С этим городом (название или язык зависит от того, какой столбец выбрать для первичного ключа) уже существует.
Я не хочу создавать столбец идентификаторов для сводной таблицы. Нет причин создавать столбец идентификаторов для сводной таблицы. Подскажите, пожалуйста, как мне правильно использовать сводную таблицу. Спасибо.