Создание блога Django Опубликовать пользовательские поля - PullRequest
0 голосов
/ 24 октября 2019

Я новичок в django, я пытаюсь добавить пользовательские поля в обычное приложение Post для блога django.

Это поля блога из коробки:

models.py

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


STATUS = (
    (0,"Draft"),
    (1,"Publish")
)

class Post(models.Model):
    title = models.CharField(max_length=200, unique=True)
    slug = models.SlugField(max_length=200, unique=True)
    author = models.ForeignKey(User, on_delete= models.CASCADE,related_name='blog_posts')
    updated_on = models.DateTimeField(auto_now= True)
    content = models.TextField()
    created_on = models.DateTimeField(auto_now_add=True)
    status = models.IntegerField(choices=STATUS, default=0)

    class Meta:
        ordering = ['-created_on']

    def __str__(self):
        return self.title

Мне нужно создать 4 поля:

  • Типы (длина поля char = 200)
  • Статус элемента (выпадающий список с OK и NOK параметры)
  • Рейтинг (числа 1-10)
  • Развернуто (длина поля char = 200)

Я пробовал простодобавив эти поля в мой models.py ниже, но это нарушает работу веб-сайта:

title = models.CharField(max_length=200, unique=True)
slug = models.SlugField(max_length=200, unique=True)
Types = models.CharField(max_length=200, unique=True)
etc

Ошибка в моем приглашении anaconda: TabError: непоследовательное использование табуляции и пробелов в отступе

Где еще я могунужно добавить поля? Нужно ли создавать отдельный класс? Если да, то как добавить бэкэнд создания сообщения?

Ответы [ 2 ]

2 голосов
/ 24 октября 2019

Когда вы делаете отступ в python, python просто ожидает, что отступ в первой строке должен совпадать с отступом в остальных строках, будь то 4 пробела, 1 пробел, 1 табуляция или что-то еще.

Какэто предлагается в PEP-8 , мы должны использовать «Пробелы», а не «Tabs»! В любом случае, ошибка говорит о том, что вы, вероятно, добавили эти новые поля с непоследовательным использованием вкладок и пробелов в отступе (т.е., вероятно, вы используете вкладки вместо 4 пробелов)

1 голос
/ 24 октября 2019

Ошибка означает именно то, что говорит. Помните, что Python не использует фигурные скобки, он использует отступы. Вы должны убедиться, что ваши строки правильно с отступом. Я не знаю, какой редактор вы используете, но вы можете проверить, есть ли для него плагины для форматирования или расширения. Однако быстрое решение состоит в том, чтобы просто удалить все пробелы, а затем сделать отступ для вкладки. Отступ осуществляется через клавишу табуляции, а не клавишу пробела.

...