@NyxDeveloper

Файл из формы не попадает в request.FILES?

Я делаю добавление файлов на сайт джанго. Все бы ничего, но модель объекта с FileField имеет еще и ForeignKey, для привязки файла к конкретному объекту. Я пытался следовать инструкциям в документации, но либо где-то свернул не туда, либо что-то не понимаю. Буду рад какому-нибудь примеру, может кто уже сталкивался с подобной проблемой.

models.py
#   документ
class Doc(models.Model):
    file = models.FileField('Файл', upload_to='docs')
    idProj = models.ForeignKey(Project, verbose_name='Проект', on_delete=models.SET_NULL, null=True)
    description = models.CharField('Примечание', max_length=2000, blank=True)

    class Meta:
        verbose_name = 'Документ'
        verbose_name_plural = 'Документы'

    def __str__(self):
        return self.file.name


forms.py
class AddDocForm(forms.ModelForm):
    class Meta:
        model = Doc
        fields = [
            'file',
            'description'
        ]

        widgets = {
            'file': forms.FileInput(attrs={
                'class': 'form-file-input mt-2 mb-2'
            })
        }

    def __init__(self, *args, **kwargs):
        super(AddDocForm, self).__init__(*args, **kwargs)
        self.fields['description'].widget = forms.Textarea(attrs={'class': 'form-control'})


views.py
def AddDocView(request, objId):
    if request.method == 'POST':
        form = AddDocForm(request.POST, request.FILES)
        if form.is_valid():
            form.save()    #да, я знаю, что поле idProj здесь не обрабатывается, интерпретатор вообще до сюда не доходит
            return redirect('/base/edit_project/' + str(objId))
    if request.method == 'GET':
        form = AddDocForm
        return render(request, 'addDoc.html', {
            'form': form,
            'objId': objId
        })
  • Вопрос задан
  • 19 просмотров
Решения вопроса 1
@bacon
окей гугл, "django file not uploading", ответ enctype="multipart/form-data"
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
от 150 000 до 180 000 ₽
Appboxo Алматы
от 830 000 до 1 250 000 ₸
Verme Москва
от 120 000 ₽
28 янв. 2021, в 04:36
5000 руб./в час
28 янв. 2021, в 03:43
2000 руб./за проект
28 янв. 2021, в 02:42
120000 руб./в час