0

我是 django 新手,来自 php 世界。我不知道如何使用 django 创建项目所需的某些输入字段。所以我手动将这些字段的 html 添加到模板中。即,我添加了复选框和菜单。然后,在 view.py 中,我添加了代码以通过 request.POST 获取用户对复选框和菜单的选择。使用这些选择,我可以修改并保存表单的实例。

一切正常。唯一的故障是表单无法验证。如果发生这种情况,我需要重新显示表单,并在顶部显示错误消息。所以我调用 render 来重新显示表单。重新显示的表单丢失了我自定义的 html 的所有选择。即,自定义的复选框和菜单被重置,但不是 django 创建的输入字段。有没有办法保存用户对自定义 html 的选择?谢谢。

4

2 回答 2

0

模型.py

class Debt(models.Model):
    user = models.ForeignKey(User)
    name = models.CharField(max_length=50,
        help_text="Name to identify your debt.")
    due_day = models.PositiveSmallIntegerField(
        help_text="Day of the month payment is due.")

表格.py

class DebtForm(forms.ModelForm):
    class Meta:
        model = Debt

视图.py

def add_debt(request):
    if request.method == 'POST':
        form = DebtForm(request.POST)
        if form.is_valid():
            form.save() 
return render(request, 'add_debt.html', {
    'form': DebtForm(),
}) 

add_debt.html

<form method="post">{% csrf_token %}
    {% for field in form %}
        {{field}}<br/>
    {% endfor %}
    <input type="submit" value="Save Debt">
</form>
于 2013-01-26T05:49:09.703 回答
0

您可以使用您的输入创建一个表单 了解如何使用表单,请参阅此处 您可以将 ModelForms与自定义输入一起使用。

于 2013-01-26T04:28:57.440 回答