2017-02-12 2 views
0

Я получаю сообщение об ошибке, когда я запускаю эту команду python manage.py makemigrations blog в python django в models.pyОшибка при запуске этой команды питона manage.py makemigrations блог в питона Джанго в models.py

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

class Post(models.Model): 
    author = models.ForeignKey('auth.User') 
    title = models.CharField(max_length=200) 
    text = models.TextField() 
    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 
    class Comment(models.Model): 
    post = models.ForeignKey('blog.Post', related_name='comments') 
    author = models.CharField(max_length=200) 
    text = models.TextField() 
    created_date = models.DateTimeField(default=timezone.now) 
    approved_comment = models.BooleanField(default=False) 

    def approve(self): 
     self.approved_comment = True 
     self.save()`enter code here` 

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

Я вижу определение класса (с внутренним определением класса и неисправного отступами?), Но я не вижу, где этот код должен начинаться когда скрипт запускается? Можете ли вы это сделать. – Alex

+2

«Ошибка» всегда самая худшая ошибка для отладки. Измените свой вопрос и добавьте полный ответ. –

ответ

0

там пару проблемы с вашим кодом:

  • Отступы
  • класс пользователя импорта
  • использовать Blog вместо blog.Blog

быстрое решение:

from django.db import models 
from django.utils import timezone 
from django.contrib.auth.models import User 


class Post(models.Model): 
    author = models.ForeignKey(User) 
    title = models.CharField(max_length=200) 
    text = models.TextField() 
    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 


class Comment(models.Model): 
    post = models.ForeignKey(Post, related_name='comments') 
    author = models.CharField(max_length=200) 
    text = models.TextField() 
    created_date = models.DateTimeField(default=timezone.now) 
    approved_comment = models.BooleanField(default=False) 

    def approve(self): 
     self.approved_comment = True 
     self.save()`enter code here` 

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

wait, я попробую, я дам вам сообщение назад – harri

+0

все еще испытывает ошибку в строке 29 'Файл 'C: \ django \ membersite \ blog \ models.py", строка 29 self.save() '' введите здесь код – harri

+0

Ну, если вы не можете понять, что означает эта ошибка, не совсем уверен, что у вас есть основы python для работы с Django. – ahmed

Смежные вопросы