Если в результате syncdb вашей django-схемы вы видите сообщение :
Accessor for field ... clashes with related fieldто скорее всего дело в том, что одна из ваших таблиц двумя своими полями ссылается на другую таблицу схемы.Пример:
class User(models.Model):
name = models.TextField()
birth_date = models.DateTimeField()
class Message(models.Model):
from = models.ForeignKey(User)
to = models.ForeignKey(User)
text = models.TextField()
#то есть таблица Сообщение имеет два внешних ключа на таблицу Пользователь
По идее django могла бы разруливать такую сиутацию, добавляя к имени аксессора какой-нибудь уникальный индекс (например, простой инкремент). Но о такой возможности фреймворка лично я не знаю..
Проблема же решается дополнительным атрибутом для ссылающихся полей:
class User(models.Model):
name = models.TextField()
birth_date = models.DateTimeField()
class Message(models.Model):
from = models.ForeignKey(User,related_name="message_sender")
to = models.ForeignKey(User,related_name="message_reciever")
text = models.TextField()
После этого syncdb должно выполниться без проблем (только, конечно, нет других ошибок =)
Комментариев нет:
Отправить комментарий
Если Вы нашли ошибку у автора, у Вас есть вопрос или просто хотите поделиться чем-то полезным, то пишите - не стесняйтесь..