Django 3 удаляет элементы поля через панель администратора

#python #python-3.x #django #django-models #django-views

#python #python-3.x #django #django-модели #django-просмотры

Вопрос:

У меня есть приложение Django, в котором у меня есть модель кандидата, а у кандидата есть поле Видео — отправляется в виде файла.

У меня есть возможность изменить поле, например, загрузить новое видео, и оно заменит его, но как я могу удалить видео кандидата и оставить его пустым?

в настоящее время у меня есть что-то подобное в панели администратора:

 Currently: uploads/VIDEOS/mediarecorder_11.mp4
Change: [Coose File] No file chosen
 

как я могу просто удалить видео и оставить его пустым?

как вы можете видеть на этом изображении — https://ibb.co/FxsGRfq Я не получаю «четкого» варианта или что-то в этом роде..

Класс-кандидат:

кандидат класса (модели.Модель):

 ....
video = models.FileField(upload_to=f'uploads/VIDEOS', null=True, blank=True, validators=[video_size_validator],
                         editable=True)

cv = models.FileField(upload_to=f'uploads/CV', null=True, validators=[cv_size_validator])

...
 

Комментарии:

1. Добавлена модель

Ответ №1:

В clear той же строке, что и в настоящее время, должна быть опция, проверьте ее и сохраните свой объект.

Комментарии:

1. К сожалению, четкой опции нет — у меня также есть поле CV, и оно тоже одинаковое, они оба выглядят так, когда есть файл ibb.co/FxsGRfq

2. В качестве опции вы также можете попробовать создать вспомогательную модель CandidateVideo с помощью a title file и a ForeignKey или OneToOne , ссылающуюся на вашу Candidate модель, тогда вы можете просто удалить этот объект целиком.

3. Не точное решение, которое я ищу, мне просто нужно использовать некоторые элементы, и интересно, есть ли способ сделать это через панель администратора или что-то в этом роде.

4. Ну, я не уверен, есть ли способ сделать это с помощью интерфейса администратора, но вы также можете написать помощник view для этого, например user = User.objects.get(pk=pk) | user.video = None | user.save()

5. кстати, если вы решите использовать мое первое решение, вы можете добавить несколько videos или cvs для одного и того же candidate , поэтому считайте его лучшим.