0

I don't see "File upload" button in document section of my front-end part and it's coming as a drop down list but it is visible in the admin panel, I'm new to Django, can you please help me to point out what is the mistake I'm making? [Thank You in advance :)].

[1]: Front-End Image: https://i.stack.imgur.com/MWU0s.png

[2]: Back-End Image: https://i.stack.imgur.com/p8zqR.jpg

forms.py File:

from django import forms
from .models import Task

class TaskDetails(forms.ModelForm):
    class Meta:
        model = Task
        fields = '__all__'

        def __init__(self, *args, **kwargs):
            super().__init__(*args, **kwargs)
            self.fields['CPAsClient'].queryset = CPA_Client.objects.none()

            if 'CPAsList' in self.data:
                try:
                    CPA_id = int(self.data.get('CPAsList'))
                    self.fields['CPAsClient'].queryset = CPA_Client.objects.filter(CPA_id=CPA_id).order_by('name')
                except (ValueError, TypeError):
                    pass
            elif self.instance.pk:
                self.fields['CPAsClient'].queryset = self.instance.CPAsList.CPAs_Clients_set.order_by('name')

task_form.html:

{% extends "crm/base.html" %}
{% load crispy_forms_tags %}
{% block content %}
  <style>
    div {
      padding-right: 30px;
      padding-left: 60px;
    }
  </style>

  <div class="content-section">
    <form action="" enctype="multipart/form-data" method="POST">
      {% csrf_token %}
      <fieldset class="form-group">
        <legend class="border-bottom-mb-4"> <h3 align="center">New Task</h3> </legend>
        {{ form|crispy }}
      </fieldset>
      <div class="form-group" align="center">
        <button class="btn; border:black" type="submit", value="POST"><strong> Add Task </strong></button>
      </div>
    </form>
  </div>
{% endblock content %}

views.py

from django.shortcuts import render, redirect, get_object_or_404
from django.http import JsonResponse
from .models import Task
from django.views.generic import ListView, DetailView, CreateView

from .models import Task, CPAsList, CPA_Client, TaskType, Document
from .forms import TaskDetails
    
# Create your views here.
def home(request):
    context = {
        'tasks': Task.objects.all()
    }
    return render(request, 'crm/home.html', context)

class TaskListView(ListView):
    model = Task
    template_name = 'crm/home.html'
    context_object_name = 'tasks'
    ordering = ['-Date_Added']

class TaskDetailView(DetailView):
    model = Task

class TaskCreateView(CreateView):
    model = Task
    fields = '__all__'
    success_url = '/'

    def model_form_upload(request):
        if request.method == 'POST':
            form = DocumentForm(request.POST, request.FILES)
            if form.is_valid():
                form.save()
                return redirect('crm-home')
            else:
                form = DocumentForm()
                return render(request, 'crm-home', {'form': form})

def contact(request):
    return render(request, 'crm/contact.html')

def upload(request):
    return render(request, 'crm/upload.html')

task_details.html

{% extends "crm/base.html" %}
{% load crispy_forms_tags %}

{% block content %}
  <h1 align="center"> Task Details </h2>

  <style>
    div {
      padding-right: 30px;
      padding-left: 65px;
    }
  </style>
    <article class="media content-section">
      <div class="media-body">
        <div class="task-metadata">
          <h3 classs="task-title"> {{ object.Subject_Line }} </h3>
          <p> {{ object.Task_Type }} </p>
          <p> {{ object.CPA }} </p>
          <p> {{ object.Client_of_CPA }} </p>
          <p> {{ object.Priority }} </p>
          <p> {{ object.Date_Added }} </p>
          {% if object.Document %}
            <p> <a href="{{ MEDIA_URL }}{{ task.Document.file }}" target="_blank">{{ object.Document }} </a> </p>
          {% else %}
            <p>No documents</p>
          {% endif %}
          <p> {{ object.Additional_Note }} </p>
          <p> {{ object.Task_Time }} </p>
          <p> {{ object.Author }} </p>
        </div>
      </div>
    </article>
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
{% endblock content %}

urls.py

from django.urls import path
from . import views
from django.conf import settings
from django.conf.urls.static import static
from .views import TaskListView, TaskDetailView, TaskCreateView

urlpatterns = [
    path('', TaskListView.as_view(), name='crm-home'),
    path('contact/', views.contact, name='crm-contact'),
    path('task/<int:pk>/', TaskDetailView.as_view(), name='task-detail'),
    path('task/new/', TaskCreateView.as_view(), name='task-create'),
    path('upload/', views.upload, name='upload'),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
  • Read this: [How do I ask a good question?](https://stackoverflow.com/help/how-to-ask) – Sumithran Aug 31 '21 at 10:52
  • Please clarify your specific problem or provide additional details to highlight exactly what you need. As it's currently written, it's hard to tell exactly what you're asking. – Community Sep 02 '21 at 18:02

0 Answers0