如何在Django的一页中处理多种表单?

时间:2018-12-17 04:06:33

标签: python django

第一次在这里发布,我进行了搜索,但找不到能说明我情况的任何内容。

我有一个页面,其中包含由一个输入字段组成的5种独立形式。每种形式都与单个产品相关,并且输入字段指的是产品的价格(价值)。这样的想法是能够在输入字段中键入数字,单击提交,然后将该值与与该特定产品相关的所有其他值一起存储。

这是实际形式的图片:

form

当前,我有一个具有三个属性的Price对象:

  • 值(在输入框中键入数字)
  • 标题(产品名称)
  • 提交日期

我考虑过的一种方法是为每个产品制作一个新对象并存储其中的所有价格值,但这似乎效率不高且难以扩展(最终我希望能够从管理员处添加新产品页,并添加很多产品。

这是我的模型。py:

from django.conf import settings
from django.db import models
from django.utils import timezone
from django import forms

# Create your models here.

class Price(models.Model):
    value = models.IntegerField()
    title = models.CharField(max_length=200, default='product_name')
    submitted_date = models.DateTimeField(default=timezone.now)


    def publish(self):
        self.published_date = timezone.now()
        self.save()

    def __str__(self):
        return self.title

Views.py:

from django.shortcuts import render
from .models import Price
from .forms import PriceForm

# Create your views here.
def home(request):
    if request.method == "POST":
        form = PriceForm(request.POST)
        if form.is_valid():
            form.save()
    else:
        form = PriceForm()
    return render(request, 'hmwypapp/index.html', {'form': form})

Forms.py:

from django import forms

from .models import Price

class PriceForm(forms.ModelForm):
    class Meta:
        model = Price
        fields = ('value',)

我对此很陌生。谢谢!

0 个答案:

没有答案