我有一个页面,有3种类型的按钮(苹果,香蕉,橙色),通过单击第一个按钮,出现一个表格来获取信息。第一个按钮应该将信息发送到苹果模型,香蕉按钮应该将信息发送到香蕉模型,然后变成橙色!
这是我的模型。py:
from django.db import models
class Apple(models.Model):
first_name = models.CharField(max_length=100)
class Banana(models.Model):
first_name = models.CharField(max_length=100)
class Orange(models.Model):
first_name = models.CharField(max_length=100)
我的表格.py:
from django import forms
class Fruit(forms.Form):
first_name = forms.CharField(max_length=100)
我的views.py:
def fruitForm(request):
form = Fruit()
if request.method == 'POST' & request.id == 'apple':
form = Fruit(request.POST)
if form.is_valid():
Apple.objects.create(**form.cleaned_data)
elif request.method =='POST' & request.id =='orange':
form = Fruit(request.POST)
if form.is_valid():
Orange.objects.create(**form.cleaned_data)
elif request.method =='POST' & request.id =='banana':
form = Fruit(request.POST)
if form.is_valid():
Banana.objects.create(**form.cleaned_data)
return render(request, 'main/home.html', {'form':form})
我的home.html:
<button class='btn btn-primary' data-target='#orange'> Add </button>
<form action=# method="POST" id = "orange">
{% csrf_token %}
{{ form.as_p }}
</form>
好吧,当我尝试转到主页(按钮所在的位置)时,出现此错误: “ WSGIRequest”对象没有属性“ id”。 请求没有id属性,对不对?那么,如何获取特定数据以保存在相对模型中?
答案 0 :(得分:0)
您可以在提交输入中添加name
,该值是按钮的文本内容,因此不能真正用于此
<form>
<input type="submit" class="btn btn-primary" name="orange" value="Add">
<input type="submit" class="btn btn-primary" name="apple" value="Add">
</form>
此值将成为发布数据中的键之一
if 'orange' in request.POST:
pass
elif 'apple' in request.POST:
pass
答案 1 :(得分:0)
webView.loadUrl("file:///android_asset/index.html");
请求正文的属性来自表单输入的POST
属性。因此,如果要保持视图功能不变,一种解决方法是在每个表单中添加一个隐藏字段,以区分应更新的模型:
name
对于其他两种形式也是如此。
(这不是解决此问题的唯一方法。例如,您可以在URL中包含一个变量,该变量指定要使用的模型。然后可以在视图函数中检查其值。这需要一点点不过,还有更多工作要做,包括更改您的<form action=# method="POST" id = "orange">
{% csrf_token %}
<input type="hidden" name="id" value="orange" />
{{ form.as_p }}
</form>
。)