我是Django新手和学习者,只是按照教程,当我看到表单字段不使用 <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
....
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" class="btn btn-primary" value="Submit">
</form>
....
在这我的 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 .
我可以用于str on CID + str(datetime.date().now()) + str(empcount+1)
有没有解决方案?...
谢谢!
2 回答
您可以使用ModelForm exclude来隐藏正在呈现的表单
或者,在模型本身中,您可以将editable设置为false . 这使得它不会以任何形式出现 .