Django - Абстрактная модель взлома базового класса syncdb - PullRequest
4 голосов
/ 08 августа 2011

У меня есть это в моем models.py:

class AuditableTable(models.Model):
    class Meta:
        abstract = True
        created_by = models.ForeignKey(User,blank=True,
        related_name="%(app_label)s_%(class)s_related1")
        last_updated_by = models.ForeignKey(User,blank=True,
        related_name="%(app_label)s_%(class)s_related1")

class Company(AuditableTable): pass

Мне кажется, я следую инструкциям , связанным с абстрактными моделями, упомянутыми здесь .

Однако я 'я получаю эту ошибку при запуске manage.py syncdb:

Error: One or more models did not validate:
ItemLocator.company: Accessor for field 'created_by' clashes with related field 'User.itemlocator_company_related1'. Add a related_name argument to the definition for 'created_by'.                                                                                       
ItemLocator.company: Reverse query name for field 'created_by' clashes with related field 'User.itemlocator_company_related1'. Add a related_name argument to the definition for 'created_by'.                                                                             
ItemLocator.company: Accessor for field 'last_updated_by' clashes with related field 'User.itemlocator_company_related1'. Add a related_name argument to the definition for 'last_updated_by'.                                                                             
ItemLocator.company: Reverse query name for field 'last_updated_by' clashes with related field 'User.itemlocator_company_related1'. Add a related_name argument to the definition for 'last_updated_by'.   

Я нахожусь на Django 1.2.

1 Ответ

5 голосов
/ 08 августа 2011

Ваше имя_пользователя для create_by и last_updated_by одинаковы и не должно быть.

для того, что я вижу, ваш класс Meta в порядке, просто измените related_name:)

...