【发布时间】:2018-12-04 09:37:45
【问题描述】:
我有两个 django 模型 ModelA 和 ModelB。
class ModelA(models.Model):
fieldA1 = models.CharField()
fieldA2 = models.CharField()
fieldA3 = models.ManyToManyField('ModelC')
class ModelB(models.Model):
key = models.CharField()
value = models.CharField()
还有一个 django 表单:
class MyForm(forms.ModelForm):
A_fields =[field.name for field in ModelA._meta.get_fields()]
key= forms.ChoiceField(label='Key',choices = [(str(l),str(l)) for l in A_fields])
value= forms.MultipleChoiceField(label='Value',choices = 'Need Help here').
'I have used MultipleChoiceField because if key == fieldA3 then there could be multiple choices for this field.'
class Meta:
model = ModelB
fields = ('key', 'value')
因为 'key' 字段的选择是 ModelA 的字段名称。我希望根据选择的键(这将是 ModelA 的某个字段名称),为 MyForm 中的“值”字段显示的选择必须是存储在 ModelA 的特定字段中的所有值。
我知道如何获取存储在 ModelA 特定字段中的值。我必须使用以下命令。
field_values = ModelA.objects.values('Field for which i want values')
这是视图:
def MyPageView(request):
if request.method == 'POST':
form1 = MyForm(request.POST)
if form1.is_valid():
myform = form1.save(commit=False)
return HttpResponseRedirect('/new_page')
else:
return render(request,'app1/my_page.html',{'form1':form1})
这里是 my_page.html
<form method= "post">
{% csrf_token %}
{{ form1.as_p }}
<input type="submit" name="Save">
</form>
我该如何解决这个问题?提前致谢。
【问题讨论】:
-
您希望在选择
key字段后填充value字段,对吧? -
是的@SachinKukreja。
-
@DanielRoseman 你能帮帮我吗?
标签: django django-models django-forms django-views