allposts_vitali
@allposts_vitali

SyntaxError: Non-ASCII character как исправить?

Здравствуйте, у меня есть файл с содержанием

# -*- coding: utf-8 -*-
from django.db import models

class Post(models.Model):
	title = models.CharField(max_length=255) # заголовок поста
	datetime = models.DateTimeField(u'Дата публикации') # дата публикации
	content = models.TextField(max_length=10000) # текст поста
	def __unicode__(self):
		return self.title
	def get_absolute_url(self):
		return "/blog/%i/" % self.id


Когда я запускаю его через python manage.py syncdb
Я получаю ошибку:
File "/home/vitali/projects/mysite/blog/admin.py", line 4
SyntaxError: Non-ASCII character '\xd0' in file /home/vitali/projects/mysite/blog/admin.py on line 4, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details


НО, если я уберу таб в последней строке, эта ошибка заменяется на:
File "/home/vitali/projects/mysite/blog/models.py", line 11
    return "/blog/%i/" % self.id
         ^
IndentationError: expected an indented block


Как исцелить код?
  • Вопрос задан
  • 55194 просмотра
Решения вопроса 1
@bromzh
Drugs-driven development
# -*- coding: utf-8 -*-

Эта строка указывает, что кодировка исходника - UTF-8. В этом файле у тебя всё правильно, компилятор ругается на другой файл (/home/vitali/projects/mysite/blog/admin.py). Вставь в начало всех файлов проекта эту строку.

НО, если я уберу таб в последней строке,

Зачем? Ты понимаешь, что делаешь? Или это рандом?
Вообще, компилятор же всё ведь написал, научись понимать, что написано.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@deliro
1) Обрами код в <code lang="python">...</code>
2) syncdb - deprecated. Используй миграции.
3) return "/blog/%i/" % self.id заменить на
return reverse('your_super_puper_view', kwargs={'pk': self.pk})
. Соответственно, почитать об этом в документации
4) В файле /home/vitali/projects/mysite/blog/admin.py используется, судя по всему, русский язык, а кодировка не UTF-8.
5) "Студенты последних курсов" все такие говнокодеры? :)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы