Модель forn не отображается - PullRequest
0 голосов
/ 13 июля 2020

Сделал модель для скачиваемых файлов. Я могу создать их через админку. Однако, когда я пытаюсь загрузить форму загрузки, поля не появляются. Я считаю, что именно так я визуализирую все остальные формы.

шаблон. html

   {% load crispy_forms_tags %}

   <form enctype="multipart/form-data" method="POST">
      {% csrf_token %}
      {{form|crispy}}
      {{form.errors}}
      <button type="submit" class="btn submit-btn mt-3 mr-2"><i class="fa fa-share"></i> Submit</button>
    </form>

forms.py

from django import forms
from .models import DownloadableFile


class DownloadableFileForm(forms.ModelForm):
    class Meta:
        model = DownloadableFile
        fields = '__all__'

models.py

from django.db import models

# Create your models here.

class DownloadableFile(models.Model):
    CHOICES = (
        ('MARKETING MATERIAL - (FORMS)', 'MARKETING MATERIAL - (FORMS)'),
        ('MARKETING MATERIAL - (LOGOS & IMAGES)', 'MARKETING MATERIAL - (LOGOS & IMAGES)'),
        ('OTHER DOCUMENTS & FORMS', 'OTHER DOCUMENTS & FORMS'),
    )

    title = models.CharField(max_length=255)
    file_type = models.CharField(max_length=255, choices=CHOICES)
    description = models.TextField(blank=True, null=True)
    upload_date = models.DateTimeField(auto_now_add=True)
    file = models.FileField(upload_to='downloads/')

    class Meta:
        verbose_name_plural = "Downloadable Files"

    def __str__(self):
        return self.title

views.py

@login_required
def create_downloadable_file_view(request):
    if request.method == 'POST':
        form = DownloadableFileForm(request.POST, request.FILES)
        if form.is_valid():
            form = form.save()
            return redirect('main:homepage_view')
    else:
        form = DownloadableFileForm
    context = {
        'files': DownloadableFile.objects.all(),
    }
    return render(request=request, template_name="dashboard/create-file.html", context=context)


def delete_downloadable_file_view(request, pk):
    obj = get_object_or_404(DownloadableFile, pk=pk)
    if request.method == 'POST':
        obj.delete()
        return redirect('dashboard:dashboard_view')
...