Django ';人形';对象没有属性';as#u widget';
我试图将字符串传递给一个表单的隐藏字段,该表单的数据存储在数据库中。目标是能够在客户端检索额外信息,而无需将其作为表单的另一个字段。Django ';人形';对象没有属性';as#u widget';,django,django-models,django-forms,django-templates,django-views,Django,Django Models,Django Forms,Django Templates,Django Views,我试图将字符串传递给一个表单的隐藏字段,该表单的数据存储在数据库中。目标是能够在客户端检索额外信息,而无需将其作为表单的另一个字段。 我得到的“PersonForm”对象没有属性“as\u widget”错误 这是我的型号: class Person(models.Model): region = models.CharField(max_length=30) industry = models.CharField(max_length=30)
我得到的
“PersonForm”对象没有属性“as\u widget”
错误
这是我的型号:
class Person(models.Model):
region = models.CharField(max_length=30)
industry = models.CharField(max_length=30)
uuid = models.CharField(max_length=50, blank=True, unique=True, default=uuid.uuid4)
scenario = models.ForeignKey(Scenario, on_delete=models.CASCADE,)
def __str__(self):
return "{}".format(self.uuid)
我的表格
class PersonForm(forms.ModelForm):
class Meta:
model=Person
scenario = forms.CharField(widget=forms.HiddenInput())
fields = ['industry', 'region','scenario']
我的观点
def personforms(request):
persons = Person.objects.all()
if request.method == 'POST':
filled_form = PersonForm(request.POST)
if filled_form.is_valid():
created_person = filled_form.save()
#DEBUG
print(filled_form.cleaned_data['scenario'])
created_person_pk = created_person.id
filled_form = PersonForm()
return redirect('/scenariopage', {'persons':persons})
else:
created_person_pk = None
return render(request, 'core/scenario-landing-page.html', {'personform':filled_form, 'created_person_pk':created_person_pk})
else:
form = PersonForm()
return render(request, 'core/scenario-landing-page.html', {'personform':form})
和我的模板
<form action="{% url 'personform' %}" method="post" class="custom-form">
{% csrf_token %}
{% render_field personform class="form-control" %}
{% render_field personform.scenario class="form-control form-control-sm" value='{{ scenario.name }}' %}
<input type="submit" class="btn color-btn" value="Go to Scenario page" data-dismiss="gallery-item"/>
</form>
{%csrf_令牌%}
{%render_field personform class=“form control”%}
{%render_field personform.scenario class=“form control form control sm”value='{{{scenario.name}}}%}
我的问题是:
我没有错误消息。但是调试打印表明填写的表单.is\u valid():
似乎无效。
视图中的这一行从不打印结果:
#调试
打印(填写表格。清理数据[‘方案])
- 我做错了什么
- 我如何可能将数据传递到字段
场景
填充表单。is\u valid()
无效。但是如果不调用表单,为什么要创建表单??????只需在模板中说{{personform}}
,并在forms.py
中创建属性,使用widgets@Moha369personform%}中的
{%for字段中的循环不就是这样做的吗?我一到计算机就会给出答案