![](/img/trans.png)
[英]IntegrityError: NOT NULL constraint failed PYTHON, SQLite3
[英]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.