2016-12-31 12 views
2

Nach der Makemigrationen, bekomme ich diesen Fehler, wenn ich versuche zu migrieren. Mathfield wird in INSTALLED_APPS installiert.AttributeError: 'Modul' Objekt hat kein Attribut '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 

django-mathfield ist in meinem virtualenv installiert django-mathfield usage Der Fehler tritt mit dem Standard oder wenn ich dem einmaligen Standard während makemigrations ermöglichen.

Antwort

0

Dieses Paket ist für Django 1.7. Wenn Sie eine neuere Version von Django verwenden, kann das Paket fehlerhafte Importe enthalten. Wenn dies der Fall ist, kannst du zu einer früheren Version von Django zurückkehren oder das django-mathfield-Paket an deine Version von Django anpassen.

Edit: Ich schaute auf den Bibliothekscode, und es scheint, die Importe in __init__.py verursachen Probleme. Ich war in der Lage, es zu erhalten, indem Sie die Top-Importe aus mathfield/__init__.py zu arbeiten:

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

und ändern Sie den Code wie folgt:

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

Ich war in Django 1.8 aber nach Herabstufung, bekomme ich immer noch die gleiche Importfehler Ich werde etwas anderes versuchen und sehen, ob es funktioniert. Ich benutze Python 2.7 und Django 1.7. – Rider

Verwandte Themen