关于python:django如何隐藏特定表单字段和循环数据输入

django how to hide specific form filed and loop data input

我是Django新手和学习者,只需遵循教程,当我看到表单字段不使用标记时,我就卡住了。

这里是我的代码

江户十一〔一〕号

1
2
3
4
5
6
7
8
9
10
11
12
13
    ....

    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

1
2
3
4
5
6
7
8
9
    ....

    <form method="post">
        {% csrf_token %}
        {{ form.as_p }}
        <input type="submit" class="btn btn-primary" value="Submit">
    </form>

    ....

这里是我的view.py

1
2
3
4
5
6
7
8
9
10
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吗?

有什么解决办法吗?…

谢谢您!


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

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


可以使用ModelForm排除隐藏正在呈现的表单

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