2016-12-31 1 views
2

작업을 마친 후 마이그레이션을 시도 할 때이 오류가 발생합니다. mathfield는 INSTALLED_APPS에 설치됩니다.AttributeError : 'module'객체에 'MathField'속성이 없습니다.

from django.db import models 
from django.utils import timezone 
import mathfield 

class Post(models.Model): 
    author = models.ForeignKey('auth.User') 
    title = models.CharField(max_length=200) 
    text = models.TextField() 
    latex = mathfield.MathField(default=timezone.now) 
    created_date = models.DateTimeField(default=timezone.now) 
    published_date = models.DateTimeField(
     blank=True, null=True) 

    def publish(self): 
     self.published_date = timezone.now() 
     self.save() 

    def __str__(self): 
     return self.title 

장고 - mathfield 내 VIRTUALENV django-mathfield usage 내가 makemigrations 동안 일회성 기본을 허용하는 경우 오류가 기본으로 발생하거나 설치된다.

답변

0

이 패키지는 장고 1.7 버전입니다. Django의 새로운 버전을 사용하고 있다면, 패키지의 import가 실패했을 수 있습니다. 이 경우 이전 버전의 장고로 되돌 리거나 장고 - 매쓰 필드 꾸러미를 장고 버전에 맞게 수정할 수 있습니다.

편집 : 도서관 코드를 살펴본 결과 __init__.py의 가져 오기가 문제를 일으키는 것으로 보입니다. 다음과 같이

# from mathfield.api import * 
# from mathfield.models import * 
# from mathfield.widgets import * 

그리고 당신의 코드를 변경 : 나는 mathfield/__init__.py에서 최고 수입을 제거하여 작업을 얻을 수 있었다

from mathfield.models import MathField 

class Post(models.Model): 
    author = models.ForeignKey('auth.User') 
    title = models.CharField(max_length=200) 
    text = models.TextField() 
    latex = MathField(default=timezone.now) 
    created_date = models.DateTimeField(default=timezone.now) 
    published_date = models.DateTimeField(
    blank=True, null=True) 

    def publish(self): 
     self.published_date = timezone.now() 
     self.save() 

    def __str__(self): 
     return self.title 
+0

내가 장고 1.8했지만 다운 그레이드 후, 나는 여전히 같은를 얻을 수 가져 오기 오류. 나는 다른 것을 시도하고 그것이 효과가 있는지 알아 보겠습니다. 저는 Python 2.7과 Django 1.7을 사용하고 있습니다. – Rider

관련 문제