在Django视图中使用纯HTML表单

在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表单创建一个Django站点。该表单包含供应商选择和金额,然后需要将其传递到视图中。需要更新employee表的余额,将支付的金额从当前登录用户的余额中扣除,并且需要在事务表中添加一个条目,说明详细信息,其中credit=0,其余信息取自表单。如何做到这一点

以下是我的文件: html:

这是我试过的视图。直到更新Employee表的余额(不确定是否正确):


对于如何从纯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"]