Джанго-Эав и Юг - PullRequest
       7

Джанго-Эав и Юг

4 голосов
/ 15 сентября 2011

Я начинаю новый проект django и, как обычно, ставлю юг на свои установленные приложения.

Затем мне нужен какой-то eav для хранения некоторых полей в модели, и я нашел приложение, которое точно выполняетто, что я хочу, это django-eav (https://github.com/mvpdev/django-eav)

Но сейчас я столкнулся с проблемой, потому что Юг жалуется, что не знает, как работать с django-eav.

! Cannot freeze field 'eav.attribute.slug'
! (this field has class eav.fields.EavSlugField)
! Cannot freeze field 'eav.attribute.datatype'
! (this field has class eav.fields.EavDatatypeField)

! South cannot introspect some fields; this is probably because they are custom
! fields. If they worked in 0.6 or below, this is because we have removed the
! models parser (it often broke things).
! To fix this, read http://south.aeracode.org/wiki/MyFieldsDontWork

Я читаю это http://south.aeracode.org/docs/customfields.html и пытаюсь решить эту проблему, не отказываясь ни от одного из двух проектов.

Кто-нибудь может мне помочь?Спасибо

Ответы [ 3 ]

2 голосов
/ 16 сентября 2011

Я думаю, что нашел одно возможное решение.

http://south.aeracode.org/docs/customfields.html#field-name-patterns

Рядом с моей моделью я поставил следующее:

from south.modelsinspector import add_ignored_fields
add_ignored_fields(["^eav\.fields\.EavDatatypeField"])
add_ignored_fields(["^eav\.fields\.EavSlugField"])

теперь оно работает.

2 голосов
/ 14 апреля 2012

Лучший ответ, который я нашел, был http://south.aeracode.org/docs/settings.html#setting-south-migration-modules

Он предлагает вам добавить SOTH_MIGRATION_MODULES dict в settings.py и сопоставить это приложение с несуществующим модулем

SOUTH_MIGRATION_MODULES = {
    'eav': 'ignore',
}
2 голосов
/ 15 сентября 2011

Глядя на github, кажется, что django-eav не очень активно развивается.Если он работает так, как вы хотите, и вы не собираетесь менять его модель данных, вам не нужно применять к нему Юг.South прекрасно работает с некоторыми приложениями, а не с другими.

Определенно используйте South в приложениях, которые вы создаете и модифицируете.Но для стабильной библиотеки я редко беспокоюсь.

...