Django表单中的复选框未更新数据库

2024-10-02 14:19:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个表单,它正在更新文本,但不更新数据库中的复选框。复选框是数据库(postgres)中的布尔模型,其中f为false,t为true。我看了其他一些教程,并尝试使用多选题,但没有取得太大成功。在

我会提前道歉,因为我是在django自学的,这是我第一个可悲的应用程序。在

这是表单.py模块

from django import forms

from .model import parcels

class tableedit(forms.ModelForm):
        class Meta:
                model = parcels
                fields = [
                        "some_number",
                        "boolean_checkbox_1",
                        "boolean_checkbox_2"

                ]

这是模型模型.py在

^{pr2}$

这是我的视图.py在

from django.shortcuts import render, redirect
from django.http import HttpResponse
from django.http import HttpResponseRedirect
from django.core.urlresolvers import reverse
from django.views.generic import UpdateView,View
from django.contrib import auth

from django.views.decorators.csrf import csrf_protect
from model import tableedit
from django.contrib.auth.decorators import login_required
from django import forms
import simplejson
from forms import tableedit

@login_required
@csrf_protect
def table_edit(request, p_id = None):
        data = parcels.objects.get(id = p_id)
        form = tableedit(request.POST or None, instance = data)


        if form.is_valid():
                instance = form.save(commit = False)
                instance.save()
                return HttpResponseRedirect(instance.get_absolute_url())

        context = {
                "some_number" : data.some_number,
                "boolean_checkbox_1" : data.boolean_checkbox_1,
                "boolean_checkbox_2" : data.boolean_checkbox_2,
                "form":form}

        return render(request, "static/table_edit.html", context)

这是表格_编辑.html文件

{% if next %}
   <input type = "hidden" name="next" value= {% url 'table.view' table.id %} \>
   {% endif %}
    {{ form.as_p }}


<form action=next  method="post">{% csrf_token %}

  <input type="submit" value="Update Item" />
</form>

Tags: djangoinstancefrompy模型importformid