在Django中使用MetaForm获取空表单

0 投票
1 回答
1378 浏览
提问于 2025-04-16 20:17

我有一个模板文件,叫做 account_form.html

<form action="/contact/" method="post">
    {% for field in form %}
        <div class="fieldWrapper">
            {{ field.errors }}
            {{ field.label_tag }}: {{ field }}
        </div>
    {% endfor %}
    <p><input type="submit" value="Send message" /></p>
</form>

这是我的 model.py 文件

class Account(models.Model):
        person_name     = models.CharField(max_length=30)
        account_number  = models.IntegerField()
        creation_date   = models.DateField()

这是我的视图代码

def account_form(request):
    if request.method == 'POST': # If the form has been submitted...
        form = AccountForm(request.POST) # A form bound to the POST data
        if form.is_valid(): # All validation rules pass
                # Process the data in form.cleaned_data
                # ...
                return HttpResponseRedirect('/thanks/') # Redirect after POST
    else:
        form = AccountForm() # An unbound form

    return render_to_response('account_form.html', {
            'form': form,
    })

问题是,当我加载这个页面时,只能看到提交按钮,其他的什么都没有

1 个回答

1

我觉得你忘了真正创建你的表单了:

应该像这样写:

forms.py:

from django.forms import ModelForm
from yourapp.models import Account

class AccountForm(ModelForm):
    class Meta:
        model = Order

这样做会让你得到Account里的所有字段。

希望这对你有帮助。

撰写回答