【问题标题】:data is not inserting in database when I click submit button单击提交按钮时数据未插入数据库
【发布时间】:2017-06-07 11:46:48
【问题描述】:

我在 Django (1.10.5) / Python 3.4 中创建了我的第一个应用程序。我有一个登录页面和一个注册页面。哪个工作正常。

我可以创建新用户并使用该 ID 登录。现在登录后,我希望用户填写一些信息并单击提交。并且信息应该存储在数据库中。

所以我先创建了一个模型:Model.py

class UserInformation(models.Model):
     firstName = models.CharField(max_length=128)
     lastName = models.CharField(max_length=128)
     institution = models.CharField(max_length=128)
     institutionNumber = models.CharField(max_length=128)
     cstaPI = models.CharField(max_length=128)
     orchidNumber = models.CharField(max_length=128)

这已经在数据库中创建了一个表。

forms.py

class UserInformationForm(ModelForm):
    class Meta:
        model = UserInformation
        fields = '__all__'

views.py

def home(request):
    form = UserInformationForm()
    variables =  { 'form': form, 'user': request.user }
    return render(request,'home.html',variables)

home.html

{% extends "base.html" %}
{% block title %}Welcome to Django{% endblock %}
{% block head %}Welcome to Django{% endblock %}
{% block content %}
    <p> Welcome {{ user.username }} !!! <a href="/logout/">Logout</a><br /><br /> </p>   

    <form method="post" action=".">{% csrf_token %}
        <table border="0">
            {{ form.as_table }}
        </table>
    <input type="submit" value="Submit"  style="position:absolute"/>

    </form>

{% endblock %}

但是当我点击提交按钮时,它不会将数据插入到我的表格中。

【问题讨论】:

  • 您没有收到有关视图的信息。您希望它如何将其插入数据库?阅读更多关于 request.POST 在 Django 中处理
  • 我只是希望这些信息在我的数据库中。我认为它会很简单。
  • 是的,它是直截了当的,但你需要在视图中处理它。在这里阅读更多:docs.djangoproject.com/en/1.10/topics/forms/#the-view
  • 谢谢,现在正在存储值。非常感谢。
  • 你去..干得好

标签: python django django-1.10


【解决方案1】:

第一个:您需要将 urls.py 添加到您的应用程序 第二个:你需要把你的views.py改成这样

`
    info = UserInformation()
    lastName = request.POST.get('lastName')
    ...
    info.save()
`

【讨论】:

    【解决方案2】:

    这里是答案,我们需要使用request.POST

    def home(request):
        if request.method == 'POST':
            form = UserInformationForm(request.POST)
            form.save()
            return HttpResponseRedirect('/home/')
        else:
            form = UserInformationForm()
            variables =  { 'form': form, 'user': request.user }
    
        return render(request,'home.html',variables)
    

    【讨论】:

      猜你喜欢
      • 2012-02-24
      • 1970-01-01
      • 2015-11-30
      • 2018-09-18
      • 2015-03-30
      • 2013-10-18
      • 1970-01-01
      • 2015-07-04
      • 1970-01-01
      相关资源
      最近更新 更多