python-3.x - Django,当点击提交按钮但发生错误时,我想将数据从下拉菜单发送到数据库
问题描述
我试图从 index.html 的下拉菜单中将数据发送到数据库,这就是为什么我创建了 models.py 作为名为 Program 的初始类,后来使用 ForeignKey 将其用于 Contact 类。在 admin.py 注册联系人,后来我在 index.html 中使用了类名程序,它呈现了我在 django 管理面板中输入的程序名称。但问题是 {{program2}} 确实显示在索引页面上,但是当用户进入表单并选择并提交此 program2 数据时不会进入数据库。我如何使用下拉列表将值发送到数据库。帮助表示赞赏,接受以我的方式解决它。
模型.py
class Program(models.Model):
program1 = models.CharField(max_length=50, default='')
class Contact(models.Model):
name = models.CharField(max_length=50, primary_key=True)
contact = models.CharField(max_length=50, default='')
address = models.TextField(max_length=1000, default='')
program2 = models.ForeignKey(Program, on_delete=models.CASCADE, null=True, blank=True)
# program = models.CharField(max_length=50, default='')
# bba = models.CharField(max_length=50, default="")
# bhm = models.CharField(max_length=50, default="")
email = models.CharField(max_length=50, default="")
w3review = models.TextField(max_length=1000, default="")
def __str__(self):
return self.name
视图.py
def index(request):
if request.method == 'POST':
name = request.POST.get('name', '')
contact = request.POST.get('contact', '')
address = request.POST.get('address', '')
program2 = request.POST.get('mba', '')
# bba = request.POST.get('bba', '')
# bhm = request.POST.get('bhm', '')
email = request.POST.get('email', '')
w3review = request.POST.get('w3review', '')
if name and contact and address and email and w3review and program2:
contact = Contact(name=name, contact=contact, address=address, email=email, w3review=w3review, program2=program2)
contact.save()
else:
return HttpResponse("Enter all details")
return render(request, 'index.html')
索引.html
<label for="cars">Choose Program:</label>
<select name="cars" id="cars">
<option id="mba" name="mba">{{program2}}</option>
<option id="bba" name="bba">BBA</option>
<option id="bhm" name="bhm">BHM</option>
</select>
解决方案
首先,您需要将 program2 添加到 contect dict 以使其在您的 html 中可用
return render(request, 'index.html', {'program2': program2})
对于提交问题,您需要在 index.html 中发布完整的表单
推荐阅读
- reactjs - React Native Navigation 如何推送屏幕?(无法读取未定义的属性推送)
- selenium - 黄瓜,示例:如何验证该值与相邻列中的值完全相同
- python - 使用 mplot3d 将数据绘制到盒子而不是金字塔中的方式
- excel - 根据多个条件返回值
- c++ - Intel C++ 编译器 18.0 update 3 in vs 2017 上的四倍精度浮点支持
- terminal - 如何解决“找不到带有 BLAS API 的必需库”的问题?
- javascript - 在 HTML 输出中强制 CSS Hexcode
- c# - 使用 javascript 在对象设计中定位元素
- c# - 如何在asp.net core razor页面中实现分页
- url - Activemq 代理地址