Приложение Django не будет отображаться в админке - PullRequest
0 голосов
/ 29 февраля 2012

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

Однако, когда я пытаюсь сделать это на моем производственном сервере, он просто не работает.Я слишком долго возился с этим, и я чувствую, что пришло время для больших орудий и задаю вопрос здесь;)

Это ситуация:

1) customerModel

from django.db import models
from mysite.product.models import Product
from mysite.province.models import provinceModel
from mysite.district.models import districtModel

class customerModel(models.Model):
    productId = models.ForeignKey(Product)
    name = models.CharField(max_length=30)
    province = models.ForeignKey(provinceModel)
    district = models.ForeignKey(districtModel)

    def __str__(self):
        return self.name

2) ProvinceModel

from django.db import models

class provinceModel(models.Model):
    name = models.CharField(max_length=30)

    def __str__(self):
        return self.name

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

Error: One or more models did not validate:
customer.customerModel: 'province' has a relation with model <class 'mysite.province.models.provinceModel'>, 
which has either not been installed or is abstract.

Я предполагаю, что это абстрактно ... Так как оно определенно установлено (в settings.py).

Чтобы все исправить, я решил поиграть.Я заметил, что даже когда удалял весь код и просто пытался редактировать приложение с помощью функции администратора django, оно не будет отображаться и в админке.

Я почти уверен, что эти две проблемы связаны, и яЯ надеюсь, что кто-то сталкивался с подобным или просто знает, что я должен делать здесь.Я начинаю чувствовать, что где-то есть внутренний конфликт, о котором Джанго не говорит.Поскольку некоторые модели могут быть добавлены в ForeignKeys, например, районные, новые модели просто не будут работать.Я попытался добавить еще один новый.

И да, я прочитал другие связанные посты о том, что приложение не отображается.Они зарегистрированы в settings.py под INSTALLED_APPS.Любая помощь приветствуется!

3) settings.py

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.admin',
    'django.contrib.admindocs',
    'mysite.product',
    'mysite.intervention',
    'mysite.customer',
    'mysite.province',
    'mysite.part',
    'mysite.district',
)

4) структура каталогов

mysite
    -> customer
        -> customerModel
    -> district
        -> districtModel
    -> intervention
        -> districtModel
    -> part
        -> partModel
    -> product
        -> productModel
    -> province
        -> provinceModel

1 Ответ

3 голосов
/ 29 февраля 2012
from django.db import models

# Notice you don't need these imports with string notation

class customerModel(models.Model):
    productId = models.ForeignKey('product.Product')
    name = models.CharField(max_length=30)
    province = models.ForeignKey('province.provinceModel')
    district = models.ForeignKey('district.districtModel')

    def __unicode__(self):    # use __unicode__ !!!
        return self.name

Попробуйте это.Я ответил вам на IRC, но вы вышли сразу, как только я опубликовал ответ.Если вы собираетесь спамить вашу проблему SO по всей сети, дождитесь ответа.Я почти не преследовал тебя здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...