Gorazio
А еще не понятно какие проблемы у вас с моделью Author, ведь в ней нет ни вторичного ключа ни ManyToManyField.
Вы совершенно правы, проблемы только с Book.
Rodegast
2) Проверяй схему БД. Там должно быть таблица связи: приложение_book_author с полями book_id, author_id.
Таблица есть.
Исправлюсь. Вопрос изложен не полностью.
так выглядит таблица publisher:
mysql> show columns from mysite_publisher;
+——-+————-+——+—–+———+—————-+
| Field | Type | Null | Key | Default | Extra |
+——-+————-+——+—–+———+—————-+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(30) | NO | | NULL | |
+——-+————-+——+—–+———+—————-+
book:
show columns from mysite_book;
+——————+————–+——+—–+———+—————-+
| Field | Type | Null | Key | Default | Extra |
+——————+————–+——+—–+———+—————-+
| id | int(11) | NO | PRI | NULL | auto_increment |
| title | varchar(100) | NO | | NULL | |
| publisher_id | int(11) | NO | MUL | NULL | |
| publication_date | date | NO | | NULL | |
+——————+————–+——+—–+———+—————-+
author:
show columns from mysite_author;
+————+————–+——+—–+———+—————-+
| Field | Type | Null | Key | Default | Extra |
+————+————–+——+—–+———+—————-+
| id | int(11) | NO | PRI | NULL | auto_increment |
| salutation | varchar(10) | NO | | NULL | |
| first_name | varchar(30) | NO | | NULL | |
| last_name | varchar(40) | NO | | NULL | |
| email | varchar(75) | NO | | NULL | |
| headshot | varchar(100) | NO | | NULL | |
+————+————–+——+—–+———+—————-+
Содержимое publisher:
print Publisher.objects.all()
Содержимое author:
print Author.objects.all()
Добавляю книгу:
p=Book(title='Book',authors='Volodia', publisher='Kontora',ublication_date='121212')
Ошибка: ValueError: Cannot assign “'Kontora'”: “Book.publisher” must be a “Publisher” instance.
Если я правильно понял, нужно передать экземпляр класса Publisher.
Направьте на путь истинный.
Спасибо