Python 非空约束失败:django和sqlite3中的SendMessage_users.UserName

Python 非空约束失败:django和sqlite3中的SendMessage_users.UserName,python,django,sqlite,Python,Django,Sqlite,我刚刚开始我的django初学者教程,面临着将数据插入sq lite数据库的问题。当加载页面AddUser时,它说 /AddUser/NOT NULL约束处的IntegrityError失败: SendMessage_users.UserName Users.objects.createUserID=用户ID,用户名=用户名,电子邮件= 用户\电子邮件,电话=用户\电话 model.py是 class Users(models.Model): UserID = models.Intege

我刚刚开始我的django初学者教程,面临着将数据插入sq lite数据库的问题。当加载页面AddUser时,它说

/AddUser/NOT NULL约束处的IntegrityError失败: SendMessage_users.UserName

Users.objects.createUserID=用户ID,用户名=用户名,电子邮件= 用户\电子邮件,电话=用户\电话

model.py是

class Users(models.Model):
    UserID = models.IntegerField(verbose_name='User ID',max_length=255,primary_key=True)
    UserName = models.CharField(verbose_name='User Name',max_length=254)
    Email = models.EmailField(verbose_name='Email',max_length=254)
    Phone = models.CharField(verbose_name='Phone Number',max_length=254)
并且view.py是

def add_user(request):
    User_ID = request.POST.get('UserID')
    User_Name = request.POST.get('UserName')
    User_Email = request.POST.get('Email')
    User_Phone = request.POST.get('Phone')
    Users.objects.create(UserID = User_ID , UserName = User_Name, Email = User_Email ,Phone = User_Phone)
    return render_to_response('add_user.html', context_instance=RequestContext(request))
并且add_user.html是

{% extends "base.html" %}

{% block Content %}

<div class="container">
  <!-- Contacts -->
  <div id="contacts">
    <div class="row">
      <!-- Alignment -->
      <div class="col-sm-offset-3 col-sm-4">
        <!-- Form itself -->
        <form name="AddUsers" action="" method="POST" class="well" id="contactForm"  novalidate>
          {% csrf_token %}
          <legend>Send Messages</legend>
          <div class="control-group">
            <div class="controls">
              <input type="text" class="form-control"
              placeholder="Subject" id="UserID" name="UserID" required
              data-validation-required-message="Please enter UserID" />
              <p class="help-block"></p>
            </div>
          </div>
          <div class="control-group">
            <div class="controls">
              <input type="text" class="form-control"
              placeholder="Subject" id="UserName" name="UserName" required
              data-validation-required-message="Please enter UserName" />
              <p class="help-block"></p>
            </div>
          </div>
          <div class="control-group">
            <div class="controls">
              <input type="text" class="form-control"
              placeholder="Subject" id="Email" name="Email" required
              data-validation-required-message="Please enter Email" />
              <p class="help-block"></p>
            </div>
          </div>
          <div class="control-group">
            <div class="controls">
              <input type="text" class="form-control"
              placeholder="Subject" id="Phone" name="Phone" required
              data-validation-required-message="Please enter Phone" />
              <p class="help-block"></p>
            </div>
          </div>
          <div id="success"> </div>
          <button type="submit" class="btn btn-primary btn-sm pull-right">Send</button><br />
        </form>
      </div>
    </div>
  </div>
</div>



{% endblock %}

发生此错误的原因是,当您向该url发出GET请求时,视图试图从POST数据中获取数据,而POST数据当时显然不存在,并且它试图使用此“无”数据创建对象。在视图中,您必须通过检查request.method值,为您期望的每个请求方法(我假设的是GET和POST)做出不同的选择。

尝试以下方法:

models.Users.objects.create()