а затем указав модели как таковые

яpython3 manage.py makemigrationsЯ получаю ниже ошибку:

...

  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/django/db/models/fields/related.py", line 348, in contribute_to_class
    lazy_related_operation(resolve_related_class, cls, self.remote_field.model, field=self)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/django/db/models/fields/related.py", line 85, in lazy_related_operation
    return apps.lazy_model_operation(partial(function, **kwargs), *model_keys)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/django/db/models/fields/related.py", line 83, in <genexpr>
    model_keys = (make_model_tuple(m) for m in models)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/django/db/models/utils.py", line 23, in make_model_tuple
    "must be of the form 'app_label.ModelName'." % model
ValueError: Invalid model reference 'x.qiyun_admin_productconfig_cloudserver.HostType

Но мой путь к модели HostType таков:
x.qiyun_admin_productconfig_cloudserver.models.HostType.

Отследить меньше.models в этом. Я не знаю почему.

Пожалуйста, ОБРАТИТЕ ВНИМАНИЕ, сериализатор и представления (представление сериализатора) находится подapi каталог.

и настройки:

...
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
PARENT_DIR = os.path.abspath(os.path.join(BASE_DIR, os.pardir))


sys.path.insert(0, BASE_DIR)
sys.path.insert(0, os.path.join(PARENT_DIR,'x'))
sys.path.insert(0, os.path.join(PARENT_DIR,'x'))
sys.path.insert(0, os.path.join(PARENT_DIR,'x'))
...

INSTALLED_APPS = [
    'django.contrib.admin',
     ....
    'x.qiyun_admin_useradminmanage',  #  
    'x.qiyun_admin_usergroups',  #  

    'x.qiyun_admin_productconfig_common', #  
    'x.qiyun_admin_productconfig_cloudserver',  #  

    'x.qiyun_admin_financialmanage_ordermanage', # 
    'x.qiyun_admin_financialmanage_financialmanage', 

РЕДАКТИРОВАТЬ

У меня есть две модели (AvailableArea, AddressRegion) в том же models.py (x.qiyun_admin_productconfig_cloudserver.):

class AvailableArea(models.Model):
    name = models.CharField(max_length=8)
    addressregion = models.ForeignKey(AddressRegion, default=1, related_name='availableareas', on_delete=models.CASCADE)

    def __str__(self):
        return self.name
    def __unicode__(self):
        return self.name

class AddressRegion(models.Model):
    name = models.CharField(max_length=8)

    def __str__(self):
        return self.name
    def __unicode__(self):
        return self.name

Видите ли, я все еще указалaddressregion = models.ForeignKey('qiyun_admin_productconfig_cloudserver.AddressRegion',...)?

И если другие модели, если есть ForeignKey относится кAddressRegionЯ тоже импортировал это.

 244boy20 нояб. 2017 г., 14:35
@Alasdair Мой РЕДАКТИРОВАТЬ, возможно, сообщит вам мой вопрос, и я просто хочу использовать больше каталогов для группировки своих приложений, чтобы мои приложения выглядели в хорошем порядке, поэтому я следую за этим постом:stackoverflow.com/questions/47323242/... , Тогда я получаю свои проблемы.
 Alasdair20 нояб. 2017 г., 14:41
Вы можете использоватьaddressregion = models.ForeignKey('AddressRegion'...) `когда ты в одномmodels.py какAddressRegion.
 Alasdair20 нояб. 2017 г., 14:23
Ваш вопрос был бы более понятным, если бы он показал код (в models.py?), Который вызывает ошибку.
 Alasdair20 нояб. 2017 г., 15:02
Я бы не стал добавлять каталоги вsys.path, Если вы переехалиmyapp к旗云管理员后台 каталог, тогда я бы изменил ваш код для использования旗云管理员后台.myapp вместо добавления旗云管理员后台 к пути. Китайские иероглифы затрудняют мне слежку за вашим вопросом, поэтому я не могу дать более конкретного совета.
 244boy20 нояб. 2017 г., 14:29
@Alasdair Посмотри на мой Редакт, мой друг /.

Ответы на вопрос(3)

этикетка вашего приложения'旗云管理员后台.产品配置.qiyun_admin_productconfig_cloudserver' является'qiyun_admin_productconfig_cloudserver' (только последний компонент).

Когда вы используете его для определения внешнего ключа, вы должны использовать метку, а не полный путь к приложению.

host_type = models.ForeignKey('qiyun_admin_productconfig_cloudserver.HostType', ...)
 244boy20 нояб. 2017 г., 14:54
Я сожалею об этом, метод не работает для меня. Я не знаю почему.
 Alasdair20 нояб. 2017 г., 14:24
Извините, я не понимаю ваш комментарий.

ValueError: Недопустимая ссылка на модель 'users.models.MyUser'. Ссылки на строковые модели должны иметь форму «app_label.ModelName».

Ошибка была в том что я указалmodels в пути кMyUser модель:

AUTH_USER_MODEL = 'users.models.MyUser'

Но мы не должны этого делать, нам нужно только указать пакет и название модели.

AUTH_USER_MODEL = 'users.MyUser'

И ошибка ушла.

но я решил ее, добавив пакет python в INSTALLED_APPS следующим образом:

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'scm',
'scm.staff'

] рассматриваемый пакет - scm.staff

а затем указав модели как таковые

AUTH_USER_MODEL='staff.Staff'

Ваш ответ на вопрос