python - 无法从 POST 表单中获取信息
问题描述
我是 Django 和 Web 开发的新手。我目前正在使用表单,但我似乎无法获取 POST 表单数据。
模型.py
class Car(models.Model):
brand = models.CharField(max_length=20)
transmission = models.CharField(max_length=20)
number_plate = models.CharField(max_length=7)
price = models.IntegerField()
available = models.BooleanField(default=True)
视图.py
def car_detail_view(request):
form = BookCar()
obj = Car.objects.get(number_plate="1JZ3OG")
context = {
'obj': obj,
'form': form
}
return render(request, "car/car_detail.html", context)
def book_car(request):
form = BuyCar(request.POST)
if form.is_valid():
instance = models.Car.objects.get(number_plate=request.POST.get('number_plate'))
instance.available=False
return redirect('../../')
表格.py
class BookCar(forms.ModelForm):
class Meta:
model = Car
fields = [
'brand',
'transmission',
'number_plate',
'price',
'available'
]
car_detail.html
{% block content %}
<h1>{{ obj.brand }}</h1>
<p>{{ obj.number_plate }}</p>
<p>{{ obj.price }}</p>
<p>{{ obj.available }}</p>
<form class="form" action="." method="post">{% csrf_token %}
<input type="hidden" value="{{obj.number_plate}}">
<input type="submit" value="Book">
</form>
{% endblock %}
每次我单击表单中的 Book 按钮时, book_car 都没有从表单中获取 POST。我检查了教程,但我无法修复它。
解决方案
在你看来尝试这样
def book_car(request):
if request.method == 'POST':
field = request.POST.get('your-field-name')
同样在您的模板中,您应该这样做:
<form action="/your-name/" method="post">
{% csrf_token %}
{{ form }}
<input type="submit" value="Submit">
推荐阅读
- java - 每次订阅 observable 时如何运行函数
- r-package - 防止 R 文件在包中运行
- amazon-dynamodb - AppSync 批量插入到 DynamoDB 失败并返回 null
- delphi - 如何在 FMX.Graphics.TBitmap 上绘制 FMX.Surface.TBitmapSurface
- node.js - 适用于 Nodejs 的 AWS 负载均衡器代理
- php - 逻辑异常:必须返回一个关系实例
- generics - 如何表示 owl 泛型,例如参数类?
- android - AWS Device Farm - 将参数传递给 Robotium 测试脚本 - Android
- excel - 在 Excel IF 语句中提取匹配值
- visual-studio-code - 在VSCode中选择关闭标签时查看打开标签的方法?