【问题标题】:Checkboxes in Django Form not updating DataBaseDjango 表单中的复选框未更新数据库
【发布时间】:2017-05-05 10:23:06
【问题描述】:

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

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

这里是 forms.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"

                ]

这是model.py中的模型

from django.db import models
from django.contrib.postgres.fields import ArrayField
from django.core.urlresolvers import reverse


class TableName(models.Model):
        name = 'table_name'
        verbose_name = 'table_name'
        some_number = models.CharField('some_number', max_length=30)
        boolean_checkbox_1 = models.BooleanField('boolean_checkbox_1 ', max_length =1)
        boolean_checkbox_2 = models.BooleanField('boolean_checkbox_2', max_length = 1)
        # Returns the string representation of the model.
        def __str__(self):              # __unicode__ on Python 2
                return self.name

        def get_absolute_url(self):
                return reverse("table_edit:view", kwargs={"id": self.id})
        class Meta:
                managed = True
                db_table = 'table'

这是我的意见.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)

这是 table_edit.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>

【问题讨论】:

    标签: python django postgresql checkbox boolean


    【解决方案1】:

    您的{{ form.as_p }} 不在您的html &lt;form&gt; 标记内。不太可能从该表单向服务器发送任何数据。

    【讨论】:

      猜你喜欢
      • 2015-06-05
      • 2018-01-29
      • 1970-01-01
      • 1970-01-01
      • 2017-12-18
      • 2014-07-09
      • 2016-05-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多