【问题标题】:How can I store a complaint made by a user in my admin panel by django如何在 django 的管理面板中存储用户提出的投诉
【发布时间】:2021-07-06 03:24:41
【问题描述】:

我在 views.py 和 forms.py 中写什么来存储用户的投诉:

这是我的网站的外观,也是用户可以输入投诉的地方。我如何保存这些投诉以便以后显示、编辑或删除它们。如何在管理面板中以列表的形式保存这些投诉。

models.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

我在views.py 和forms.py 中写了什么来做到这一点。请帮我。基本功能是接受投诉,以便相关人员可以收到并相应地解决comlpaints。我如何制作视图和表格,以便我们可以接受这些投诉并将它们存储在相应的地方?

模板

<form class="" action="" method="POST" enctype="multipart/form-data">
            {% csrf_token %}
            <div class="form-control col-lg-10 comp-title-field">{{form.title}}</div>
            <p class="desc">Description</p>
            <button type="button" class="btn btn-secondary preview-btn">Preview</button>
            <div class="Descr ">{{form.description}}</div>
            <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>

【问题讨论】:

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


    【解决方案1】:

    请检查下方并根据您的逻辑进行细微更改 #forms.py

    from django.forms import ModelForm
    import your model
    
    class ComplaintForm(ModelForm):
        class Meta:
            model = Complaints
            fields = ['title', 'description', 'highpriority', 'document']
    

    views.py

    import your form
    def view_name(request):
        user = request.user
        if request.method == 'POST':
            form = ComplaintForm(request.POST)
            if form.is_valid():
                form.save(commit=False)
                form.user = request.user
                form.save()
    
                return render(request,your_template_path,ypur_context)
            return render(request,your_template_path,ypur_context)
        else:
            form = ComplaintForm()
            return render(request,your_template_path,ypur_context)
    

    【讨论】:

    • 我试过了,但输入投诉后会出现The view accounts.views.NewComplaint didn't return an HttpResponse object. It returned None instead. 错误
    • 是的,问题是 form.is_valid() 没有正确处理
    • 我输入了投诉,但它没有得到更新或保存在管理面板中
    • 我也在模板中添加了...请检查是否有问题
    猜你喜欢
    • 2017-02-24
    • 2021-03-24
    • 2021-09-30
    • 2012-07-22
    • 2021-03-27
    • 2021-09-16
    • 1970-01-01
    • 2019-07-20
    • 2021-12-13
    相关资源
    最近更新 更多