python - 如何使用不同的字段作为modelformset的标签?
问题描述
我正在使用 django 作为框架创建一个库存管理系统。我有一个带有 product 列和 order_amount 列的简单模型。我希望用户能够使用 modelformset 更新的唯一部分是 order_amount 列。Django 自动使用字段名称“Order Amount”标记每个表单。我想做的是将每个表单标记为它从 Product 字段更新的实例。
模型.py
class Sysco_Products(models.Model):
Products = models.CharField(max_length = 200)
order_amount = models.IntegerField(blank=True, null=True)
def __str__(self):
return self.Products
class meta:
managed = True
db_table = 'sysco_products'
表格.py
from django import forms
from .models import Sysco_Products
class orderform(forms.ModelForm):
class Meta:
model = Sysco_Products
fields = ('order_amount',)
视图.py
class SyscoOrder(TemplateView):
template_name= "SyscoOrder.html"
def get(self, request):
OrderFormSet = modelformset_factory(Sysco_Products, fields=('order_amount',))
context = {
'OrderFormSet' : OrderFormSet,
}
return render(request, self.template_name, context)
def post(self, request):
OrderFormSet = modelformset_factory(Sysco_Products, fields=('order_amount',))
formset = OrderFormSet(request.POST,)
if formset.is_valid():
formset.save()
return redirect('Order')
context ={
'formset' : formset,
}
return render(request, self.template_name, context)
解决方案
你的意思是类似的东西field.label = f"{sysco_product_instance.Products} amount:"
?
这应该有效:
from django.utils.translation import gettext
class orderform(forms.ModelForm):
class Meta:
model = Sysco_Products
fields = ('order_amount',)
def __init__(self, *args, **kwargs):
super(self, orderform).__init__(*args, **kwargs)
if self.instance.Products.strip():
self.fields['order_amount'].label = gettext("%(product_name)s amount:").format(product_name=self.instance.Products)
推荐阅读
- python - 无限期地绘制matplotlib子图?
- docker - pycharm错误运行,在docker debug上找不到运行器
- google-bigquery - Scio saveAsTypedBigQuery 写入分区,用于 SCollection of Typed Big Query 案例类
- c - 静态内存可以延迟分配吗?
- r - 无法将变量转换为 ggplot 的因子
- apache-flink - flink 背压监控
- ignite - 处理选择器键失败后,点燃缓存失败...java.io.IOException: Broken pipe exception
- javascript - IONIC3 推送通知在 IOS DEVICE 中不起作用
- time-complexity - 循环调整的时间复杂度
- azure-devops - 如何将 apitoken 添加为自定义 VSTS 服务端点数据源的一部分?