Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django ';人形';对象没有属性';as#u widget';_Django_Django Models_Django Forms_Django Templates_Django Views - Fatal编程技术网

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():
似乎无效。 视图中的这一行从不打印结果:

#调试
打印(填写表格。清理数据[‘方案])

  • 我做错了什么

  • 我如何可能将数据传递到字段
    场景


你有什么错误?@MatthewGaiser我刚刚更新了消息。我没有错误消息本身,但是视图中的f
填充表单。is\u valid()
无效。但是如果不调用表单,为什么要创建表单??????只需在模板中说
{{personform}}
,并在
forms.py
中创建属性,使用widgets@Moha369
personform%}中的
{%for字段中的循环不就是这样做的吗?我一到计算机就会给出答案