目前,我正在为GPL应用程序(e-cidadania)开发一个辩论模块(很像scrum / kanban板),我对复杂的后端没有任何经验。我已经为它开发了一个基本的前端,但现在我不知道我应该使用什么方法来为ajax和django后端保存和操作表和注释。
该表可以是N行和N列,每行和每列都有一个名称和位置。每个注释还有一个位置,文本和注释(使用django注释框架管理)。
我想存储每个音符的父元素(所以我可以稍后放置)并存储行和列的名称,如CSV字符串。这是一个好方法吗?
当前前端的屏幕截图:http:// ur1。 CA / 4zn4h
更新:我差点忘了,前端已经完成了jQuery Sortables(所以用户可以根据自己的喜好移动音符)和CSS3。
答案 0 :(得分:0)
你只需要在Django中建模你的域(即看起来像scrum板的辩论)。首先用简单的英语思考它,就像这样:
辩论。它们由标准组成,按特定顺序按行和列组织。这会创建单元格,可以在其中包含笔记。
然后您可以设置将其转换为模型类。不要太担心它们包含的字段,最重要的是关系(所以ForeignKey
位):
class Debate(models.Model):
title = ...
class Column(models.Model):
title = ...
order = ...
board = models.ForeignKey(ScrumBoard, related_name='columns')
class Row(models.Model):
title = ...
order = ...
board = models.ForeignKey(ScrumBoard, related_name='rows')
class Cell(models.Model):
column = models.ForeignKey(Column)
row = models.ForeignKey(Row)
class Note(models.Model)
text = ...
cell = models.ForeignKey(Cell)
但是,对于你需要的东西,这可能过于复杂。我不是你想要解决的问题的专家吗?我的建议是,Django很快 - 所以开始黑客攻击,然后试一试,如果一切都搞错了,那么你可以回过头几步,清理你的数据库然后再试一次。
您可能会发现使用South很有用,{{3}}会在您执行模拟中添加/删除/编辑字段等操作时执行数据库迁移。