django - 我的表单没有在 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>
这是页面的外观:
投诉需要保存在这里,但是当我点击保存时我什么也看不到:
有人可以告诉我我的代码有什么问题吗
解决方案
推荐阅读
- c# - 验证文件后错误无效 json 原语
- wordpress - 我们如何覆盖产品订购脚本
- ios - 如何使用 Siri 语音命令验证用户在多项选择题中的回答
- c# - 如何在 Sync Fusion Chart Control ChartSeries 中更改符号前的文本位置
- php - 无法使用 php for Salesforce API 将访问令牌放入 SOAP 客户端
- rest - 用于备份和恢复的 RESTful API
- android - 如何从 Fragment 中的共享偏好中获取价值?
- c# - 当 WebClient 给出超时异常时,使用 TPL (Task.WhenAll) 从 URL 批量读取图像会陷入死锁
- python - 输出是什么?为什么是[无,无,无]
- python - 使用 Beautifulsoup 获取特定属性