在Django 1.8.2中,如何为用户帐户分配“任务”模型并让用户删除自己的任务?

时间:2015-06-01 14:15:22

标签: django authentication

我想将用户帐户系统添加到用户只需添加他或她需要执行的任务的网站,并选中选中每个任务并删除其帐户中的所有现有复选标记。

到目前为止,我能够创建一个粗略的网站,人们可以进入,添加任务并修改它们,借助jQuery和我在视图模块中定义的一些函数。在我的合作伙伴的帮助下,我还确保我只对数据进行请求和响应,而不是整个HTML页面,并且我的JavaScript运行有点基于后端,我的所有任务都保存在

我需要了解Django框架的工作原理。

用户可以在其清单中有多个任务,因此我必须在ToDoChecklistTask模型类中定义ForeignKey字段。 According to Chapter 14 of the Django Book,但是,我正在使用django.contrib.auth模块中的Django默认用户模型,因此我不知道如何将每个ForeignKey连接到当前登录到该站点的用户。我也不知道如何处理用户想要删除属于他或她的所有任务的请求;到目前为止,我只是告诉Django从服务器中删除所有任务。

如何根据ForeignKey将每个用户连接到各自的任务?当用户发送请求时,如何访问他们的任务以删除它们?

编辑:我认为一个更好的问题是,我必须在代表个人用户的ForeignKey构造函数中传递的类的名称是什么?

1 个答案:

答案 0 :(得分:2)

这里有几点。

如果您需要扩展用户模型,请使用onetoone on User

如果您需要了解请求背后的用户,请使用request.user

from django.contrib.auth.models import User

class myModel(models.Model)
    user = models.OneToOneField(User)

这可以让您执行request.user.task_set.all().delete()

之类的操作

如果你想通过AJAX完成所有这些,那么世界会变得更加复杂。正如我所理解的,REST API的权限是一个半未解决的问题。请参阅this PyCon talk