Python Django在表单中静态添加字段
你好 我正在尝试制作一个Django表单,在这里我可以静态地添加字段。下图描述了这个概念 我想要一个有新按钮的表单。“新建”按钮应该重定向到另一个页面,在那里我可以填写数据,如从、到和金额。一旦我按下submit键,它将返回到表单,在表单中填写的数据应显示为金额1、金额2等 有人能告诉我正确的路怎么走吗 另外,我不能使用javascript 我正在使用的代码: models.pyPython Django在表单中静态添加字段,python,django,django-forms,Python,Django,Django Forms,你好 我正在尝试制作一个Django表单,在这里我可以静态地添加字段。下图描述了这个概念 我想要一个有新按钮的表单。“新建”按钮应该重定向到另一个页面,在那里我可以填写数据,如从、到和金额。一旦我按下submit键,它将返回到表单,在表单中填写的数据应显示为金额1、金额2等 有人能告诉我正确的路怎么走吗 另外,我不能使用javascript 我正在使用的代码: models.py from django.db import models from django.utils import time
from django.db import models
from django.utils import timezone
from django.contrib.auth.models import User
from django.urls import reverse
from django.forms import inlineformset_factory
class Post(models.Model):
title_choices = [
('Mr', 'Mister'),
('Ms.', 'Miss'),
]
title = models.CharField(max_length=100)
first_name = models.CharField(max_length=100, default = '')
last_name = models.CharField(max_length=100, default = '')
date_posted = models.DateTimeField(default=timezone.now)
titles = models.CharField(
max_length = 3,
choices = title_choices,
default= 'Mr',
)
def __str__(self):
return self.title
def get_absolute_url(self):
return reverse('post-detail', kwargs={'pk': self.pk})
class Debt(models.Model):
Money = models.ForeignKey(Post, on_delete=models.CASCADE, null = True)
CurrentDebt = models.CharField(max_length=100, default = '')
Period = models.CharField(max_length=100, default = '')
views.py
from django.shortcuts import render
from django.views.generic import (
View,
ListView,
DetailView,
CreateView,
UpdateView,
DeleteView,
TemplateView
)
from .models import Post, Debt
from django.contrib.auth.mixins import LoginRequiredMixin, UserPassesTestMixin
from .latex import tex
from django.http import FileResponse, Http404
from django.urls import reverse
from django.forms import inlineformset_factory, BaseInlineFormSet
FullForm = inlineformset_factory(Post, Debt, fields=('CurrentDebt', 'Period',), extra= 1, can_delete= True)
class PostCreateView(LoginRequiredMixin, CreateView, BaseInlineFormSet):
model = Post
fields = ['first_name', 'last_name', 'titles' ,'title']
def form_valid(self, form):
form.instance.author = self.request.user # Use this to get the information from the form.
response = super().form_valid(form)
return response
class PostCreate2View(LoginRequiredMixin, View):
template_name = 'Blog/form.html'
model = Debt
fields = ['CurrentDebt', 'Period']
为了简单起见,我将使用三个矩形,从左到右从1到3对它们进行编号 由于您没有代码,我将尝试给您一个粗略的蓝图,其中包含我认为可以帮助您的方法。我假设矩形2和矩形3是用户填充数据的表单,提交矩形2会将数据添加到矩形1中 我看到的挑战是: 1.让矩形2记住当我们转到矩形3并返回到矩形2时,为姓名和姓氏提交的原始数据。 2.将数据从矩形2传输回矩形3 对于挑战1,我将使用。您将有两个隐藏输入,一个用于name,另一个用于last_name
对于挑战2,我将使用。有了这个mixin,您可以使用诸如get_form_kwargs see previous link之类的方法将数据从视图传递到表单。因此,一旦提交矩形3,就应该将表单数据重定向到矩形2的GET请求。从这里开始,您可以使用get_form_kwargs,并在表单的u init_u方法中使用适当的数据填充表单。嗨,Vincent,我添加了一段我正在使用的代码。目前在我的模板中,我有一个“新建”按钮,它将导致另一个表单。问题是主键和作者在表单之间都不相关。矩形2是通过使用PostCreateView类实现的,矩形3-Post2CreateView.Hi,因此,如果我正确地理解了问题,当您回到矩形2时,表单会忘记主键和作者吗?还有一个问题,您是否在forms.py中定义了一些表单?是的,您理解正确。我没有在表单中定义任何表单。py这些天我很忙,所以我将尝试提供一些可以帮助您的资源。