Я перенесла более 10 000 записей из моей старой базы данных mySQL в Django/sqlite. В моей старой таблице комментариев схемы mysql поле художника не было полем от 1 до большого числа, а было только поле mysql varchar
. В моей новой модели Django я преобразовал поле художника в ForeignKey
и использовал temp_artist, чтобы временно сохранить имя исполнителя из старой базы данных.Django Введите внешний ключ от модели CharField
Как создать пользовательский интерфейс экземпляра экземпляра каждой песни на основе поля temp_artist? Я предполагаю, что должен использовать метод администратора get_or_create
, но где и как написать код?
моя модель ниже:
class Artist (models.Model):
name = models.CharField(max_length=100)
class Song (models.Model):
artist = models.ForeignKey(Artist, blank=True, null=True, on_delete=models.CASCADE, verbose_name="Artist")
temp_artist = models.CharField(null=True, blank=True, max_length=100)
title = models.CharField(max_length=100, verbose_name="Title")
duration = models.DurationField(null=True, blank=True, verbose_name="Duration")
Если вы используете свой второй метод, таблица myapp_artist в настоящее время пуста, без каких-либо данных, и сначала должно быть создано поле имени исполнителя, так как это будет SELECT id из myapp_artist в этот момент? – bayman
Обновлен мой ответ – e4c5
К сожалению, в запросе была небольшая ошибка. Ему нужно было отличное.Также обратите внимание на замечание об уникальном – e4c5