似乎无法理解我哪里出错了

Can't seem to understand where I'm going wrong

我正在做一个接受用户投诉的django项目:

models.py:

class Complaint(models.Model):
   user = models.ForeignKey(User, on_delete= models.CASCADE, null = True, blank=True)
   id = models.AutoField(blank=False, primary_key=True)
   reportnumber = models.CharField(max_length=500 ,null = True, blank= False)
   eventdate = models.DateField(null=True, blank=False)
   event_type = models.CharField(max_length=300, null=True, blank=True)
   device_problem = models.CharField(max_length=300, null=True, blank=True)
   manufacturer = models.CharField(max_length=300, null=True, blank=True)
   product_code = models.CharField(max_length=300, null=True, blank=True)
   brand_name = models.CharField(max_length = 300, null=True, blank=True)
   exemption = models.CharField(max_length=300, null=True, blank=True)
   patient_problem = models.CharField(max_length=500, null=True, blank=True)
   event_text = models.TextField(null=True, blank= True)
   document = models.FileField(upload_to='static/documents', blank=True, null=True)

   def __str__(self):
       return self.reportnumber

views.py:

def History(request):
  complaint_data = Complaint.objects.filter(user=request.user) 
  context = { 'complaint':complaint_data }
  return render(request, 'myHistory.html', context)

class EditComplaint(UserPassesTestMixin, UpdateView):
   model = Complaint
   fields = ('reportnumber', 'eventdate', 'event_type', 'device_problem', 'manufacturer', 
  'product_code', 'brand_name', 'exemption', 'patient_problem', 'event_text', 'document')  
   template = 'newcomplaint.html'
   def form_valid(self, request):
       complaint = request.user.complaint
       form = ComplaintForm(instance=complaint)
       if request.method == 'POST':
          form = ComplaintForm(request.POST, request.FILES, instance=complaint)
          if form.is_valid():
             form.save()
       context = {'form': form}
       return render(request, 'newcomplaint.html', context)

   def test_func(self):
       complain = self.get_object()

       if self.request.user == complain.user:
           return True
       raise Http404(_('This complain does not exist'))

我的历史模板:

<div class="col-lg middle middle-complaint-con">
        <i class="fas fa-folder-open fa-4x comp-folder-icon"></i>
        <h1 class="all-comp">My Complaints</h1>
        <p class="all-comp-txt">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>

        {%for c in complaint %}
        <a href="{% url 'Complaint' c.pk %}" style="color:black;">
            <div class="container comp-con-{{forloop.counter0}}">
                <p style="color: #D37A19; margin-left: -130px; margin-top: -5px;">Report number:</p>
                <p class="history-level-1">{{c.reportnumber}}</p>
                <p class="comp-title-1">{{c.event_type}}</p>
                <p class="comp-sub-1">{{c.event_text}}</p>
            </div>
        </a> {%endfor%}
    </div>

查看投诉详情模板:

{% extends 'base2.html' %} {% load static %}{% csrf_token %}{% load crispy_forms_tags %}{% block content %}
    <p class="new-active"></p>

    <!-- Left Container -->
    <div class="col left-nav sidebar left-side-nav">
        <p class="navbar-brand medsplain-dash"><strong>MedsPlain</strong></p>

        <a href="dashboard.html"><i class="fas fa-desktop"></i><span>Dashboard</span></a>
        <a href="/Login/Profile/"><i class="fas fa-user"></i><span>Profile</span></a>
        <a href="complaints.html"><i class="fas fa-folder-open"></i><span>Complaints</span></a>
        <a href="/My-History/"><i class="fas fa-history"></i><span>History</span></a>
        <a href="/Login/Add-Complaint/"><i class="fas fa-folder-plus"></i><span>New</span></a>
        <a href="{% url 'Logout' %}" class="down"><i class="fas fa-sign-out-alt"></i><span>Log Out</span></a>

    </div>

    <!-- Middle Container -->
    <div class="col-lg middle middle-complaint-con">
        <i class="fas fa-folder-open fa-4x comp-folder-icon"></i>
        <h1 class="all-comp">New Complaint</h1>

        <form class="" action="" method="POST" enctype="multipart/form-data">
            {% csrf_token %}
            <p class="sub-typ-wr">Submit Type</p>
            <a href="/Login/Add-Complaint/Document-Style/"><button type="button" class="btn btn-secondary document-btn">Document</button></a>

            <div class="rep-num">
                <label class="written-label" for="">Report Number</label>
                <div class="written-txt-field">{{form.reportnumber}}</div>
            </div>

            <div class="eve-dte">
                <label class="written-label" for="">Event Date</label>
                <div class="written-txt-field">{{form.eventdate}}</div>
            </div>

            <div class="eve-typ">
                <label class="written-label" for="">Event Type</label>
                <div class="written-txt-field">{{form.event_type}}</div>
            </div>

            <div class="dev-pro">
                <label class="written-label" for="">Device Problem</label>
                <div class="written-txt-field">{{form.device_problem}}</div>
            </div>

            <label class="written-label eve-txt" for="">Event Text</label>

            <div class="Manufacturer">
                <label class="written-label" for="">Manufacturer</label>
                <div class="written-txt-field">{{form.manufacturer}}</div>
            </div>

            <div class="pro-code">
                <label class="written-label" for="">Product Code</label>
                <div class="written-txt-field">{{form.product_code}}</div>
            </div>

            <div class="brand-name">
                <label class="written-label" for="">Brand Name</label>
                <div class="written-txt-field">{{form.brand_name}}</div>
            </div>

            <div class="exem">
                <label class="written-label" for="">Exemption</label>
                <div class="written-txt-field">{{form.exemption}}</div>
            </div>

            <div class="pat-pro">
                <label class="written-label" for="">Patient Problem</label>
                <div class="written-txt-field">{{form.patient_problem}}</div>
            </div>



            <div class="comp-textarea">{{form.event_text}}</div>
            <button type="button" class="btn btn-secondary attach-btn-1"><div class="fas fa-file-upload">{{form.document}}</div></button>
            <button type="submit" name="submit" class="btn btn-secondary save-btn-1"><i class="fas fa-save"></i> Save</button>
        </form>

    </div>

    <!-- Right Container -->
    <div class="col right-pro-con">
        <div class="img-cir">
            <form method='POST' action="" enctype="multipart/form-data">
                {% csrf_token %} {% if request.user.profile.profile_pic.url %}
                <img src={{request.user.profile.profile_pic.url}} alt="" width="100px" height="100px" class="pro-img"> {% else %}
                <img src="{% static 'profileimages/msi.jpg' %}" alt="" width="100px" height="100px" class="pro-img"> {% endif %}
                <p class="my-name">{{request.user.profile.first}}
                    <p>
                        <p class="my-email-id">{{request.user.profile.email}}</p>
            </form>
        </div>


        <a href="#" class="con-us">CONTACT US</a> {% endblock content %}

我的历史记录页面运行良好,但是当我点击其中一张卡片查看投诉的详细信息时,显示如下:

我不知道为什么它说模板不存在,即使我什至没有在任何地方提到 complaints_form 模板。

该属性不是 template,而是 template_name。截至目前,您似乎使用的是较早的版本。

如果您没有在 UpdateView 上定义 template_name 属性(目前正在发生),django 会自动尝试查找模板名称 <app_name>/<model_name>_<form>.html.