我有一个看起来像这样的模型
ID,name,isValue,Value
我希望逻辑做的就像外行人那样:
如果isValue为false,则向用户显示一个文本框,以便他可以填写,
否则,向用户显示一个复选框
在数据库中,除Value列外,所有这些列都被填充。我真的不需要任何代码,但我很感激,如果有人能告诉我如何从这里继续前进。
刚开始,我不确定是否可以将(isValue = false)对象传递给复选框小部件,并将(isValue = True)对象传递给文本框小部件,然后将其显示在我的模板,只是不确定如何。我做了类似这样的事情来分离对象。所以我想要的是显示所有13个条目(例如,该表中有13个条目),其名称和基于isValue的复选框/文本框。
checkboxx = []
textboxx = []
items = Items.objects.all()
for i in items:
if i.isValue == False:
checkboxx.append(i)
else
textboxx.append(i)
答案 0 :(得分:1)
使用自定义表单。然后在它的__init__
方法中,根据您喜欢的评估,将Textarea或CheckboxInput小部件指定为字段的小部件。
class MyModelForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(MyModelForm, self).__init__(*args, **kwargs)
if self.instance.isValue:
self.fields['myfield'].widget = forms.Textarea()
else:
self.fields['myfield'].widget = forms.CheckboxInput()
以上是一个简化的例子。你必须修改以适应你的逻辑,但基本原则适用。