Я учу себя Django с помощью книги Django 3 на примере Я прошелся по книге и столкнулся с сообщением об ошибке
Курсы с сообщениями об ошибке.File.file: ( models.E006) Поле 'файл' конфликтует с полем 'файл' из модели 'course.itembase'. и
classes.Image.file: (models.E006) Поле 'file' конфликтует с полем 'file' из модели 'course.itembase'
Я использовал документацию Здесь , и правильно ли я понимаю, что «поля модели. Каждое поле указано как атрибут класса, и каждый атрибут отображается в столбец базы данных». В моем случае «файл класса» и «изображение класса» совместно используют атрибут «файл», который добавляется как столбец базы данных. Глядя на другие решения, я попытался переименовать атрибут и столкнулся с запросом на
Теперь укажите одноразовое значение по умолчанию (будет установлено для всех существующих строк с нулевым значением для этот столбец)
Закройте и позвольте мне добавить значение по умолчанию в models.py
Означает ли это, что в базе данных есть два столбца с именем «файл», который я должен идентифицировать с помощью уникального атрибута. Глядя на документацию, я вижу, что правильно использовал Models.Filefield Здесь , не могли бы вы подсказать мне документацию о том, как добавить значение по умолчанию для этой ошибки в models.py?
class ItemBase(models.Model):
owner = models.ForeignKey(User,
related_name='%(class)s_related',
on_delete=models.CASCADE)
title = models.CharField(max_length=250)
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
def render(self):
return render_to_string(
f'courses/content/{self._meta.model_name}.html',
{'item': self})
class Meta:
abstract = True
def __str__(self):
return self.title
class Text(ItemBase):
content = models.TextField()
class File(ItemBase):
file = models.FileField(upload_to='files')
class Image(ItemBase):
file = models.FileField(upload_to='images')
class Video(ItemBase):
url = models.URLField()