首页 > 解决方案 > 模型/表单/Django

问题描述

好的,在我上一个问题的惊人有用提示之后再次回来。我正在学习编码并为自己创建一个网络应用程序来跟踪我的吸烟和包装成本。在我开始跟踪吸烟之前,我先从一个数据库开始跟踪我购买的香烟和成本。我现在的大问题是,当我保存表单时,它不会将数据添加到 /admin 站点或我的 sql lite 上的 packss 模型中。这是我的最新代码:

html:

{% extends 'pack/layout.html'%}

{%block content%}

<div class = "form_pack">
    <h3>FORM PACK</h3>
    <p>
        <form method="POST"> {% csrf_token %}
           {{ form.as_p }}
     <input type="submit" value="submit"/>
</form>
    </p>
</div>
{% endblock %}

网址.py

from pack.forms import packsForm
from django.urls import path
from . import views

urlpatterns = [
    path("", views.pack, name="index"),
    path("packs_create/", views.packs_create, name="packs")
]

视图.py

from django.forms.forms import Form
from django.shortcuts import render
from .forms import packsForm

# Create your views here.

    def packs_create(request):
        if request.method == "POST":
            form = packsForm(request.POST)
            if form.is_valid():
                form.save(commit = True)
        else:
            form = packsForm()
            return render(request, 'pack/index.html', {'form': form})

def pack(request):
      if request.method == "POST":
        form = packsForm(request.POST)
        if form.is_valid():
            form.save(commit = True)
      else:
        form = packsForm()
        return render(request, 'pack/index.html', {'form': form})

模型.py

from django.db import models
import datetime

# Create your models here.

class packs (models.Model):
    timestamp = models.DateTimeField(auto_now_add=True, auto_now=False, blank=False)
    num_packs = models.SmallIntegerField(max_length=10)
    cost_packs = models.DecimalField(max_digits=6, decimal_places=2)

表格.py

from django.forms import ModelForm
from .models import packs

class packsForm(ModelForm):
    class Meta:
        model = packs
        fields = ('num_packs', 'cost_packs')
 

再次感谢所有帮助,希望我能用它来更好地理解编码和戒烟!

-Kornballer 博士

标签: pythonhtmlsqldjango-modelsdjango-forms

解决方案


推荐阅读