下面提到的是代碼完整的詳細資訊我已經嘗試了所有方法并應用了互聯網上可用的方法,但問題仍然存在。提交表單時我沒有收到任何錯誤。
模型:
class Subscriber(models.Model):
id = models.BigAutoField(primary_key=True)
email = models.EmailField(null=False, default=1)
date = models.DateTimeField(auto_now_add=True)
看法:
from .models import Subscriber
def subscriber_view(request):
if request.method == 'POST':
email = request.POST.get('email')
subscriber = Subscriber(email=email)
subscriber.save()
return render(request, 'homepage')
網址.py
path('', views.subscriber_view, name='subscriber'),
基本檔案
{% load static %}
<div class="footer-newsletter">
<div class="container">
<div class="row justify-content-center">
<div class="col-lg-6">
<h4>Join Our Newsletter</h4>
<p>Tamen quem nulla quae legam multos aute sint culpa legam noster magna</p>
<form method="POST" action="{% url 'subscriber' %}" id="subscriber" role="form" novalidate="novalidate" >
{% csrf_token %}
<input class="form-control" id="email" placeholder="Email Address" type="email" name="email">
<input type="submit" value="Subscribe">
</form>
</div>
</div>
</div>
</div>
uj5u.com熱心網友回復:
來自 Django 檔案https://docs.djangoproject.com/en/dev/ref/models/querysets/#create:
創建(**kwargs)
一種創建物件并將其全部保存在一個步驟中的便捷方法。因此:
p = Person.objects.create(first_name="Bruce", last_name="Springsteen")
和:
p = Person(first_name="Bruce", last_name="Springsteen")
p.save(force_insert=True)
是等價的。
force_insert 引數在別處有檔案說明,但這意味著總是會創建一個新物件。通常你不需要擔心這個。但是,如果您的模型包含您設定的手動主鍵值,并且該值已存在于資料庫中,則對 create() 的呼叫將失敗并顯示 IntegrityError,因為主鍵必須是唯一的。如果您使用手動主鍵,請準備好處理例外。
由于您的Subscriber模型手動設定主鍵,如下所示:
class Subscriber(models.Model):
id = models.BigAutoField(primary_key=True)
您必須使用create()或save(force_insert=True)添加新訂閱者
uj5u.com熱心網友回復:
我得到了我的問題的解決方案,實際上代碼一切都很好。我有兩個視圖路由到相同的 URL,似乎是由于第一個視圖運行而不是第二個視圖之間存在沖突。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/346375.html
