我有一个django应用程序核心。它具有模型验证,该验证存储具有8列的记录。我在数据库记录中获得的每一行都有一个空列。我想稍后使用Django表单或模型表单为记录的子集更新此null列。我不想更改任何其他列值。
例如,我总共有100条记录,其中一个空列称为“产品详细信息”。我想更新最后10行的产品详细信息列。使用Django表单或modelForm。
这是我的应用程序的models.py,forms.py和views.py代码:
models.py
class Verification(models.Model):
asset_code = models.CharField(verbose_name="Asset Code",max_length=16, default="")
scan_time=models.DateTimeField(verbose_name="Time of smartDNA scan",auto_now_add=True,default=datetime.datetime.now)
credential = models.CharField(verbose_name="smartDNA Credential",max_length=16, default="")
status=models.IntegerField(verbose_name="Scanning Status",choices=STATUS_CHOICES,default=1)
operator = models.CharField(verbose_name="Operator",max_length=16, default="")
location = models.CharField(verbose_name="Branch",max_length=64, default="")
auth_code = models.CharField(verbose_name="Scanner Authentication",max_length=20, default="DSC(Verisign")
emp_id = models.CharField(verbose_name="EMP ID",max_length=16, default="")
image = models.CharField(verbose_name="Image",max_length=24, default="dd")
created=models.DateTimeField(verbose_name="Created on",blank=True,auto_now_add=True)
modified=models.DateTimeField(verbose_name="Modified on",blank=True,auto_now=True)
product_details= models.CharField(verbose_name="Product Details",max_length=64, default="")
表格
class UpdateDetailsForm(forms.Form):
asset_code = forms.CharField(max_length=16)
asset_code = forms.CharField(max_length=16)
product_details = forms.CharField(max_length=64)
views.py
def update_details(request):
if request.method == "POST":
if 'search' in request.POST:
form = UpdateDetailsForm(request.POST)
if form.is_valid:
product_details=form.cleaned['product_details']
return render_to_response('update_details.html',
{'form':UpdateDetailsForm(),},
context_instance=RequestContext(request))
我想使用表格的一部分表行更新一列“ product_details”。例如,从asset_code 10到asset_code 100。
您需要使用更新queryset方法。
例如:
verifications = Verification.objects.filter(asset_code__range=(10, 100))
verifications.update(product_details=form.cleaned['product_details'])
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句