В настоящее время у меня есть сайт, на котором размещены приложения и база данных пользователей. Теперь я хочу соединить их, чтобы у приложений могли быть авторы (т.е. пользователи).
Обновление: ниже добавлено еще несколько важных деталей, и я использую django-registration.
Следуя этому, а также документам Django, я начал с добавления строки author
к моей модели приложений:
from django.contrib.auth.models import User
class App(models.Model):
name = models.CharField(max_length=200)
...
author = models.ForeignKey(User)
Однако, когда я захожу в свои приложения из администратора django, я получаю сообщение об ошибке DatabaseError at /admin/apps/app/ ... такого столбца нет: apps_app.author_id
Очевидно, что для этой функции мне нужно сделать больше шагов, но мне любопытно, почему это простое дополнение вызывает ошибку.
Я использую South для миграции и побежал
./manage.py schemamigration apps --auto
Для одноразового значения я установил «ноль», так как он ожидает int()
./manage.py migrate apps
Это не сработало, поэтому я сделал
./manage.py migrate apps --fake
Затем снова предыдущая команда, без --fake.
Кроме того, согласно связанному вопросу SO, я должен также создать class User(User)
в apps/models.py?
Обновление 2 Я только что создал новое приложение django (не путать .manage.py startapp...
с моим объектом "приложение"). Я прошел этапы создания, добавив этот внешний ключ, и он работал нормально. Мой единственный вывод из этого заключается в том, что это должна быть проблема миграции на юг, а не что-то не так с моим кодом.