在Django视图中使用纯HTML表单
因此,我尝试使用HTML表单创建一个Django站点。该表单包含供应商选择和金额,然后需要将其传递到视图中。需要更新employee表的余额,将支付的金额从当前登录用户的余额中扣除,并且需要在事务表中添加一个条目,说明详细信息,其中credit=0,其余信息取自表单。如何做到这一点 以下是我的文件: html: 这是我试过的视图。直到更新Employee表的余额(不确定是否正确):在Django视图中使用纯HTML表单,html,django,forms,django-models,django-views,Html,Django,Forms,Django Models,Django Views,因此,我尝试使用HTML表单创建一个Django站点。该表单包含供应商选择和金额,然后需要将其传递到视图中。需要更新employee表的余额,将支付的金额从当前登录用户的余额中扣除,并且需要在事务表中添加一个条目,说明详细信息,其中credit=0,其余信息取自表单。如何做到这一点 以下是我的文件: html: 这是我试过的视图。直到更新Employee表的余额(不确定是否正确): 对于如何从纯html表单中获取数据(我是初学者),以及如何使用这些信息来获得我想要的结果,我感到困惑。任何帮助都将
对于如何从纯html表单中获取数据(我是初学者),以及如何使用这些信息来获得我想要的结果,我感到困惑。任何帮助都将不胜感激。要从表单中获取数据,您应该传递一个视图,该视图将处理表单的action属性中的信息,然后使用request.POST dictionary您可以提取所需的数据 html:
谢谢你的投入!如何在views.py文件中区分已选中的单选按钮?另外,我已经更新了views.py函数,请告诉我它是否可以正常工作!您应该为无线电输入指定不同的名称,以便在提交表单时,request.POST dictionary中只显示选定的无线电。现在,如果您想返回到原来的页面,您必须使用以下命令:`return HttpResponseRedirect(request.META.get('HTTP_REFERER'))`可以通过给它们不同的值来访问它吗?设置不同的名称意味着允许用户同时选择这两个名称,我不希望发生这种情况。另外,我更新了我的views.py,如果现在看起来不错,一定要告诉我!谢谢另外,我是否使用正确的方法保存到事务模型中?然后让它们使用相同的名称。请不要改变a之前给你的报税表,只是简单地复制并粘贴它
<form method="POST" action="/profiles/updatingBalance">
<div class="custom-control custom-radio">
<input type="radio" class="custom-control-input" value="1" id="defaultUnchecked" name="defaultRadios">
<label class="custom-control-label" for="defaultUnchecked">Vendor 1</label>
</div>
<div class="custom-control custom-radio">
<input type="radio" class="custom-control-input" value="2" id="defaultUnchecked" name="defaultRadios">
<label class="custom-control-label" for="defaultUnchecked">Vendor 2</label>
</div>
<input type="" class="form-control" id="amount1" name="amt" aria-describedby="emailHelp" placeholder="Enter amount">
<br>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
from django.db import models
from django.contrib.auth.models import User
import django
import datetime
# Create your models here.
class vendor(models.Model):
id = models.CharField(max_length=20, on_delete=models.CASCADE, primary_key=True)
name = models.CharField(maxlength=30, on_delete=models.CASCADE)
class employee(models.Model):
name = models.OneToOneField(User, on_delete=models.CASCADE)
id = models.CharField(max_length=20, on_delete=models.CASCADE, primary_key=True)
balance = models.IntegerField(default=0)
class transaction(models.Model):
vendor_id = models.ForeignKey(vendor, on_delete=models.CASCADE)
emp_id = models.ForeignKey(employee, on_delete=models.CASCADE)
debit = models.IntegerField()
credit = models.IntegerField()
timestamp = models.DateField(_("Date"), default=datetime.date.today)
def updatingBalance(request):
if request.method=="POST":
ven_id = request.POST["defaultRadios"]
amount = request.POST["amt"]
x = employee.objects.filter(id = request.User.id)
x.balance = x.balance - amount
p = transaction(vendor_id =ven_id.value, emp_id = request.User.id, debit=amount, credit=0)
p.save()
return render(request, 'profiles/userLogin.html', employee)
return HttpResponseRedirect(request.META.get('profiles/userLogin.html'))
<form method="POST" action="/Yourapp/theview/">
your html
</form>
def theview(request):
amount=request.POST["amt"]