Изменить ImageField() на TextField()
Как изменит тип поля FileField() на TextField() во время сохранение
например 
Я изменит тип поля с js во время onChange в поле Категория Фактическое поля модель fileField()
class Banner(models.Model):
banner_id = models.AutoField(primary_key=True)
office = models.ForeignKey("Office", models.DO_NOTHING, verbose_name="офис")
category = models.ForeignKey("BannerCategory", models.DO_NOTHING, verbose_name="Категория")
banner_name = models.CharField(max_length=255, verbose_name="Имя")
banner_resource = models.FileField(upload_to=rename("banner"), validators=[
FileExtensionValidator(allowed_extensions=['png', 'PNG', 'jpg', 'jpeg', 'JPG', 'JPEG', 'mp4', 'MP4', 'webm'])],
verbose_name="Баннер ресурс")
banner_status = models.BooleanField(verbose_name="Статус")
def clean(self):
if self.category.category_module == "photo":
if not str(self.banner_resource).split(".")[-1] in ['png', 'PNG', 'jpg', 'jpeg', 'JPG', 'JPEG']:
raise ValidationError("Выберите только изображения")
elif self.category.category_module == "video":
if not str(self.banner_resource).split(".")[-1] in ['mp4', 'MP4']:
raise ValidationError("Выберите только видео файл")
def __str__(self):
if self.banner_name is None:
return "-"
return self.banner_name
class Meta:
managed = False
db_table = 'banner'
verbose_name = 'Баннер'
verbose_name_plural = 'Баннеры'
Ответы (1 шт):
Автор решения: Za Ars
→ Ссылка
Вы не можете менять тип поля модели django в процессе работы. но вы можете создать второе поле, для текста, и показывать скрывать его через JS в админке