我在从html表单获取数据以向sqlite数据库写入新内容时遇到了一些问题。我使用了一些类似的方法来编辑最初通过shell创建的现有条目(联系人),但在创建新条目时似乎不起作用。当我提交表单时,它会显示相同的页面,但为空,也不会重定向我。你知道吗
我的HTML:
<form action="{% url 'contactmanager:addnewcontact' %}" method="POST">
{% csrf_token %}
<ul>
<li><label>First Name: </label> <input type="text" name="fname" id="fname"/></li>
<li><label>Last Name: </label> <input type="text" name="lname" id="lname"/></li>
<li><label>Email: </label> <input type="text" name="email" id="email"/></li>
<li><label>Phone Number: </label> <input type="text" name="pnumber" id="pnumber"/></li>
<li><label>Notes: </label> <input type="text" name="notes" id="notes"/></li>
</ul>
<input type="submit" value="Create" />
</form>
我的视图.py地址:
def addnewcontact(request):
contact = ContactList(fname=request.POST.get('fname'), lname=request.POST.get('lname'))
contact.save()
contactinfo = ContactList.objects.get(pk=contact.id)
contactinfo.contactdetails_set.create(lname=request.POST.get('lname'), email=request.POST.get('email'), pnumber=request.POST.get('pnumber'), notes=request.POST.get('notes'))
return HttpResponseRedirect('contactmanager/index.html')
我的型号.py地址:
class ContactList(models.Model):
fname = models.CharField(max_length=200)
lname = models.CharField(max_length=200)
def __str__(self):
contact_name = self.fname + ' ' + self.lname
return contact_name
class ContactDetails(models.Model):
fname = models.ForeignKey(ContactList, on_delete=models.CASCADE)
lname = models.CharField(max_length=200)
email = models.CharField(max_length=200)
pnumber = models.CharField(max_length=15)
notes = models.TextField(default = ' ')
def __str__(self):
return self.email
仅供参考:fname是将ContactDetails模型与ContactList关联的外键。你知道吗
我的ORM查询有问题吗?它们类似于我用来通过python创建一些初始“联系人”的那些管理.py贝壳。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐