首页 > 解决方案 > 我的表单没有在 django 中提交。我的代码有什么问题?

问题描述

我正在制作一个投诉管理系统,但是我需要接受和保存用户投诉的页面,甚至没有提交表单,因为我什至看不到提交的消息。

模型.py:

class Complaint(models.Model):
   user = models.ForeignKey(User, on_delete= models.CASCADE, null = True, blank=True)
   title = models.CharField(max_length=300)
   description = models.TextField(null=True, blank= True)
   highpriority = models.CharField(max_length=200, blank=True)
   document = models.FileField(upload_to='static/documents')

   def __str__(self):
       return self.title

表格.py:

    PRIORITY_CHOICES= [
    ('high', 'High'),
    ('low', 'Low'),
    ]

   class ComplaintForm(ModelForm):
       highpriority = forms.CharField(label='Priority', 
   widget=forms.RadioSelect(choices=PRIORITY_CHOICES))
       class Meta:
           model = Complaint
           fields = ['title', 'description', 'highpriority', 'document']
        
    def clean(self):
        cleaned_data = super(ComplaintForm, self).clean()
        title = cleaned_data.get('title')
        description = cleaned_data.get('description')
        if not title and not description:
            raise forms.ValidationError('You have to write something!')

视图.py:

def NewComplaint(request):
user = request.user
if request.method == 'POST':
    form = ComplaintForm(request.POST)
    if form.is_valid():
        cmp_obj = form.save(commit=False)
        cmp_obj.user = user
        cmp_obj.save()
    submitbutton= request.POST.get('Submit')

    if submitbutton:
        messages.success(request, 'Submitted!')
    context = {'form': form}
    return render(request, 'new.html', context)
else:
    form = ComplaintForm()
    context = {'form': form}
    return render(request,'new.html',context)

模板:

<!-- 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 %}
            <div class="form-control col-lg-10 comp-title-field" name="title">{{form.title}}</div>
            <p class="desc">Description</p>
            <button type="button" class="btn btn-secondary preview-btn">Preview</button>
            <div class="Descr " name="description">{{form.description}}</div>
            {{message}}
            <button type="file" name="myfile" class="btn btn-secondary attach-btn"><i class="fas fa-file-upload"></i> Attachment</button>
            <button type="submit" name="submit" class="btn btn-secondary save-btn" value="Submit"><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>
        <p class="prio-txt">Priority</p>

        <div class="form-check">
            <input class="form-check-input new-radio-btn-1" type="radio" name="gridRadios" value="option1" checked>
            <label class="form-check-label radio-label-1">
        High
      </label>
        </div>
        <div class="form-check">
            <input class="form-check-input new-radio-btn-2" type="radio" name="gridRadios" value="option2">
            <label class="form-check-label radio-label-2">
        Low
      </label>
        </div>

这是页面的外观:

在此处输入图像描述

投诉需要保存在这里,但是当我点击保存时我什么也看不到:

在此处输入图像描述

有人可以告诉我我的代码有什么问题吗

标签: djangodjango-modelsdjango-viewsdjango-formsdjango-templates

解决方案


推荐阅读