【问题标题】:What should I add in my views.py if I want to accept complaints from different users in my complaint management system in django如果我想在 django 的投诉管理系统中接受来自不同用户的投诉,我应该在 views.py 中添加什么
【发布时间】:2021-09-16 11:04:15
【问题描述】:

我正在制作一个投诉管理系统,不同的用户可以在其中登录并向系统添加投诉。我需要创建一个页面,用户可以在其中添加将保存在管理面板中的投诉,但不知道该怎么做。我已经创建了模型和模板,但不知道在视图或表单中还需要添加什么。我尝试了很多不同的东西,但似乎都没有奏效。谁能告诉我怎么做?

模型.py:

class Complaints(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.BooleanField(default=False)
   document = models.FileField(upload_to='static/documents')

   def __str__(self):
       return self.title

模板:

<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 %}
            <input type="email" class="form-control col-lg-10 comp-title-field" placeholder="Complain title">
            <p class="desc">Description</p>
            <button type="button" class="btn btn-secondary preview-btn">Preview</button>
            <textarea class="form-control comp-textarea" rows="7" placeholder="Enter text here"></textarea>
            <button type="file" name="myfile" class="btn btn-secondary attach-btn"><i class="fas fa-file-upload"></i> Attachment</button>
            <button type="submit" class="btn btn-secondary save-btn" value="submit"><i class="fas fa-save"></i> Save</button>
        </form>

    </div>

它需要看起来像这样:

请帮我解决这个问题...我整天都在做这个,我想还有什么可以做的,所以不妨在这里问一下。

【问题讨论】:

  • 首先将您的models.Models 切换到admin.Models,如果您希望它出现在管理员显示屏上。其次,您可以将投诉保存为对象吗?
  • 是的,我可以将其保存为对象,但它仍会显示在管理面板中吗?
  • 你还必须注册模型。
  • 示例 admin.site.register(投诉)
  • 它应该会出现在你的管理面板中

标签: django django-models django-views django-forms django-templates


【解决方案1】:

这并不完美,但对我来说非常基本的模型形式:

if request.method == 'POST':
    form = ComplaintForm(request.POST or None)
    if form.is_valid():
      instance = form.save(commit=False)
      instance.user = request.user
      instance.save()
    else:
      form = ComplaintForm()

此外,您可能需要使用login_ 装饰器或is_authenticated 方法对用户进行身份验证,并验证输入数据。

一些有用的链接:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-22
    • 1970-01-01
    • 2015-04-14
    • 1970-01-01
    相关资源
    最近更新 更多