2016-12-31 5 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

Этот пакет предназначен для Django 1.7. Если вы используете более новую версию Django, пакет может иметь неудачный импорт. Если это так, вы можете вернуться к более ранней версии Django или вы можете изменить пакет django-mathfield в соответствии с вашей версией Django.

Редактировать: Я посмотрел на код библиотеки, и кажется, что импорт в __init__.py вызывает проблемы. Я был в состоянии получить его на работу, удалив верхний импорт из mathfield/__init__.py:

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

и изменения кода следующим образом:

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

Я был в Django 1.8, но после понижения, я все еще получаю то же самое ошибка импорта. Я попробую еще что-нибудь и посмотрю, работает ли это. Я использую Python 2.7 и Django 1.7. – Rider