我有两个模型是由一个外键关联的。我试图在创建视图的表单字段中添加逻辑,在该视图中,用户填写一个数字n,它在数据库中生成n个项。
型号.py
class Environment(models.Model):
name = models.CharField(max_length=50)
class Item(models.Model):
environment = models.ForeignKey(Environment, on_delete=models.CASCADE)
uid = models.CharField(max_length=50, unique=True, null=True, blank=True)
def __init__(self):
super(Item, self).__init__()
self.uid = str(uuid.uuid4())
视图.py
class EnvironmentCreateView(CreateView):
'''View for creating Environments'''
model = Environment
form_class = EnvironmentCreateForm
template_name = 'Environment_create.html'
success_url = reverse_lazy('main:Environment list')
表格.py
如果
items
字段由用户填充,它应该在数据库中生成n个项。我采用的当前方法存在覆盖save函数的问题。不确定是否需要使用inline表单集
class EnvironmentCreateForm(forms.ModelForm):
name =forms.CharField(max_length=50, required=True, label='Product Name')
items =forms.IntegerField(min_value =0, max_value = 100,required=False, label='Number of Items')
class Meta:
model = Environment
fields = ['name',]
def save(self):
if Environment.is_valid():
Environment.save()
if self.items >= 0:
for i in range(self.items):
Item.objects.create(Environment, uid =str(uuid.uuid4()) )