我已经在我的Django网络应用程序上工作了很长一段时间,并且由于最初的糟糕计划,我一直在不断改变和移动我的网络应用程序中的东西,所以现在它是一个完整的混乱。我决定停止编写代码并反思我希望这些东西是如何工作的。
提出的一个问题是人们必须填写的申请表。
models.py
class Contact(models.Model):
ContactName = models.CharField(max_length = 250, default='',
verbose_name="Contact Name")
Country = models.CharField(max_length = 250, default='')
City = models.CharField(max_length = 250, default='')
etc.
我的表格中会有超过一百个字段,我不希望它们全部显示,而是一步一步地显示它们:
个人信息 - >一般信息 - >上传支持的文档 - >等。
我有两个问题:
我应该将所有100个字段保留在一个类(联系人)下还是将它们分成几个类并使用ForeignKey连接它们?最佳做法是什么?
填写个人信息字段后,申请人将按继续,然后将其移至“常规信息”并填写完整信息等。是应该在Django views.py中处理这个逻辑还是使用JavaScript完成它?或者它是两者的结合?
在我再次触摸键盘之前,我只是想知道一切是如何工作的。
答案 0 :(得分:1)
首先,永远不要基于UI设计您的应用程序。表示层不是唯一的,您可以使用不同的表示层,如Web UI,移动UI和第三方API接口。
创建后端时,请不要为演示文稿定制。演示文稿是否必须适应。
使用ER图表在纸上创建模型,如果需要向导表单,可以使用前一个Form Wizard
现在Form tools
https://django-formtools.readthedocs.io/en/latest/创建一组表单收集和验证数据并在后端创建模型(复数)。
使用表单工具您不需要使用javascript。使用formtools可以创建许多不同的表单来一起运行。每个表单都有自己的验证,但最后你有一个done
函数来管理所有数据,以创建你需要的。
您不需要JS,但您可以使用正确的JS工具来改善UX(用户体验)。我此刻并不在意。您当前的问题是管理您的应用程序的设计,以及您稍后可以处理的演示文稿。