如何解决Django表单不保存数据
这是一个普通的表单填充代码,我在其中创建了表单并将request.post传递到其中。张贴请求数据已正确捕获,但在传递到表单后未保存。 django版本3.1是基本语言。
===view===
def adst(request):
lists = Site.objects.filter(deleted=False)
country = Country.objects.filter(deleted=False)
company = Company.objects.filter(deleted=False)
region = Region.objects.filter(deleted=False)
location= Location.objects.filter(deleted=False)
sbu = SBU.objects.filter(deleted=False)
delta = {'status': True}
if request.method == 'POST':
print(request.POST) # Print_Output
request.POST = request.POST.copy()
request.POST['inserted_by'] = request.user.id
form = SiteForm(request.POST)
**if form.is_valid():**
form.save()
print(request.GET) # Print_Output
context = {'form' : SiteForm(),'list' : lists,'data' : delta,'sbu' : sbu,'country' : country,'company' : company,'region' : region,'location' : location}
return render(request,'masters/site.html',context)
===Post Data===
<QueryDict: {'csrfmiddlewaretoken': ['sdtbHHn5OVAf19kkaJUlijHzURZEHNNLKm7PLnR6bxrodIKH4rbgB'],'country': ['India'],'company': ['GILI'],'region': ['north'],'location': ['Vikhroli'],'sbu': ['goejo nw'],'site': ['asdasd'],'status': ['on']}>
===Form===
class SiteForm(ModelForm):
class Meta:
model = Site
fields = ['id','code','site','country','company','region','location','sbu','status','deleted','inserted_by','updated_by']
===Model===
class Site(models.Model):
code = models.CharField(max_length=250,null=True,blank=True,db_column='code')
site = models.CharField(max_length=250,db_column='site')
country = models.ForeignKey(Country,on_delete=models.CASCADE)
company = models.ForeignKey(Company,on_delete=models.CASCADE)
region = models.ForeignKey(Region,on_delete=models.CASCADE)
location = models.ForeignKey(Location,on_delete=models.CASCADE)
sbu = models.ForeignKey(SBU,on_delete=models.CASCADE)
status = models.BooleanField(default=True,db_column='status')
deleted = models.BooleanField(default=False,db_column='deleted')
inserted_by = models.BigIntegerField(null=True,db_column='inserted_by')
inserted_on = models.DateTimeField(auto_Now_add=True,db_column='inserted_on')
updated_by = models.BigIntegerField(null=True,db_column='updated_by')
updated_on = models.DateTimeField(auto_Now=True,db_column='updated_on')
def __str__(self):
return self.site
def datamodify(self):
return self.inserted_on >= timezone.Now() - datetime.timedelta(days=1)
return self.updated_on >= timezone.Now() - datetime.timedelta(days=1)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。