@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
        })
  • Вопрос задан
  • 236 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы