Django如何隐藏特定的表单字段和循环数据inpu

2024-09-28 21:36:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我只是按照教程进行操作,当我看到表单字段没有使用<input>标记时,我被卡住了。在

这是我的密码

model.py

class Employee(models.Model):
companyid = models.CharField(max_length=100)
name = models.CharField(max_length=100)

def __str__(self):
return self.name

def get_absolute_url(self):
return reverse("system:detail",kwargs={'pk':self.pk})

我的system/templates/system/emp_form.html

^{pr2}$

我的view.py

class EmployeeCreateView(CreateView):
fields = ('nik','name')
model = models.Employee

def form_valid(self, form):
self.object = form.save(commit=False)
empcount = models.TempEmp.objects.filter(status=0).count()
self.object.companyid = CID + str(datetime.date().now()) + str(empcount+1)
self.object.save()
return super(ModelFormMixin, self).form_valid(form)

问题1。在

emp_form.html使用显示所有表单的{{ form.as_p }},我想隐藏我的例子中需要计算机生成的companyid的特定字段。在

问题2。在

我能用+表示CID + str(datetime.date().now()) + str(empcount+1)上的str吗

或者其他解决办法?在

谢谢你!在


Tags: namepyselfformmodelreturnobjectmodels
2条回答

可以使用ModelForm exclude隐藏要呈现的窗体

class EmployeeCreateView(CreateView):
    fields = ['nik','name']
    exclude = ['companyid']

或者,在模型本身中,可以将“可编辑”设置为false。这使得它不会以任何形式出现。在

class Employee(model.Models):
     companyid = models.IntegerField(editable=False)

相关问题 更多 >