当我从django表单中选择一个opcion参考字段时,如何获取产品名称。
class InvoiceForm(forms.Form):
invoice= forms.CharField(widget = forms.TextInput())
Ref= forms.ModelChoiceField(queryset=Producto.objects.all())
Product = forms.CharField(widget = forms.TextInput())
答案 0 :(得分:0)
如果我理解正确,您希望根据Ref
字段自动填写产品名称。但是,在这种情况下,您根本不需要单独的字段。在模板中,ModelChoiceField
将使用Producto
类__str__
方法显示选项。所以也许这样的东西可以满足你的需求。
#models.py
class Producto(models.Model):
name = models.CharField()
...
def __str__(self):
return self.name
#forms.py
class InvoiceForm(forms.Form):
invoice= forms.CharField(widget = forms.TextInput())
product= forms.ModelChoiceField(queryset=Producto.objects.all())
#views.py
class MyFormView(views.FormView):
def form_valid(self, form):
product = form.cleaned_data['product']
# can access any product attributes
if product.name == 'bananas':
# do_something(form)
将字段名称保持为小写(product
而不是Product
),这是最佳做法。