@dawasaturday

В чём может быть проблема с БД? Доп.таблицы не создала?

в бд имеются следующие модели:
class Musician(models.Model):
    id_musician = models.AutoField(primary_key=True)
    pseudonym = models.CharField(max_length=30)

class Genre(models.Model):
    id_genre = models.AutoField(primary_key=True)
    name_genre = models.CharField("genre's name", max_length=30)

class Song(models.Model):
    id_song = models.AutoField(primary_key=True)
    name_song = models.CharField("song's name", max_length=30)
    album = models.CharField(max_length=30)
    release_date = models.DateField
    text = models.TextField
    musician = models.ManyToManyField(Musician)
    genre = models.ManyToManyField(Genre)


Работаю на страничке Django администрирование. Заполнила некоторые данные для исполнителей и жанров. При попытке уже добавить песню у меня вылетает ошибка. acace70e3e6c4972baa89093e7316f12.JPG
aa10c6ce12a9460a80d4c387faf652d0.JPG

Наверняка глупая ошибка из-за отвратного знания бд, но тем не менее, подскажите, в чем моя беда?
  • Вопрос задан
  • 424 просмотра
Решения вопроса 1
Я позволю себе подытожить несколько ответов и добавить от себя чуть.

- release_date = models.DateField() - пропущены скобки, и также в некоторых аналогичных полях. Подозреваю также, что должно быть blank=True, null=True.
- Явное задание первичных ключей не нужно. id_song, id_genre, ... - лишние. Django сама создаёт первичный ключ с именем id для каждой таблицы.
- Мне кажется по смыслу, что у вас многие поля должны иметь blank=True, иначе - они все являются обязательными к заполнению.
- Album как мне кажется должен быть отдельной таблицей, связываемой по foreign key.

После исправления этого нужно сделать makemigrations и migrate, как указали выше.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@asd111
Для создания нужных таблиц из моделей используются миграции, которые можно создать и применить следующими командами:
manage.py makemigrations
manage.py migrate
Ответ написан
Комментировать
@alphabear
/* html5+css3+base js */
Прямо: нет такой таблицы "JustLyrics_song_musician"
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы