【问题标题】:The below code is not able to save the entered data in database in django以下代码无法将输入的数据保存在 django 的数据库中
【发布时间】:2020-10-30 07:03:35
【问题描述】:

views.py

def contact_us(request):
    if request.method == 'POST':
        formq = forms.querys(request.POST)
        if formq.is_valid():
            obj = query()
            obj.name = formq.cleaned_data['your_name']
            obj.email = formq.cleaned_data['your_email']
            obj.message = formq.cleaned_data['your_message']
            obj.save()
            return redirect(index)
    else :
        formq = forms.querys()
    return render(request, 'home/contact_us.html', {'formq': formq})

models.py

class query(models.Model):
    Name = models.CharField(max_length=200)
    Email = models.CharField(max_length = 200)
    Message = models.CharField(max_length=1500)

    def __str__(self):
        return self.Name

forms.py

class querys(forms.ModelForm):
    class Meta:
        model=models.query
        fields = ['Name', 'Email','Message']

请帮助我如何在数据库中添加查询并在管理页面上查看。

【问题讨论】:

    标签: html django database


    【解决方案1】:

    您需要查看很多内容:

    1. 由于您使用的是 ModelForm,因此您不必像现在一样手动清理和保存数据。调用 save() 方法即可完成这项工作。
    2. 此外,不要导入整个表单和模型。导入什么 必要的。不要导入整个文件。
    3. 如果不使用reverse,您将无法重定向到网址名称。请看这个reverse

    如果您在模板中使用formq 对象,即{{ formq }},则此视图有效。如果您正在制作自定义 html 表单,请确保 <input> 的名称与 django 表单字段相同。假设 views.py 和 forms.py 位于同一位置。

    views.py

    from .forms import querys
    from django.urls import reverse
    from django.shortcuts import render,redirect
    
    def contact_us(request):
        if request.method == 'POST':
            formq = querys(request.POST)
            if formq.is_valid():
                formq.save()
                return redirect(reverse(index))
            else:
                return render(request, 'home/contact_us.html', {'formq': formq})
        else:
            formq = querys()
            return render(request, 'home/contact_us.html', {'formq': formq})
    

    再次假设 models.py 和 forms.py 位于同一位置。

    forms.py

    from .models import query
    
    class querys(forms.ModelForm):
        class Meta:
            model=query
            fields = ['Name', 'Email','Message']
    

    【讨论】:

      猜你喜欢
      • 2018-03-16
      • 2017-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-25
      • 2018-03-21
      • 1970-01-01
      相关资源
      最近更新 更多