簡體   English   中英

NOT NULL約束失敗:django和sqlite3中的SendMessage_users.UserName

[英]NOT NULL constraint failed: SendMessage_users.UserName in django and sqlite3

我剛剛開始我的django初學者教程,並且面臨將數據插入sq lite數據庫的問題。 在加載頁面AddUser時說:

/ AddUser / NOT NULL約束處的IntegrityError失敗:SendMessage_users.UserName

Users.objects.create(UserID = User_ID,UserName = User_Name,Email = User_Email,Phone = User_Phone)

該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數據中獲取數據,該數據當時顯然不存在,並且正試圖使用​​此“無”數據創建對象。 在視圖中,必須通過檢查request.method值,為期望的每種請求方法(我假設是GET和POST)做出改變。

試試這個:

models.Users.objects.create()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM