Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
django中的CRUD用户,django Admin之外_Django_Django Models - Fatal编程技术网

django中的CRUD用户,django Admin之外

django中的CRUD用户,django Admin之外,django,django-models,Django,Django Models,在我当前的项目中,我想在django的管理界面之外CRUD用户 下面我们来解释一下我的问题: 1-我使用存储用户的附加属性(他们的学校、生日等) 2-问题是,通过删除用户,我可以删除配置文件,而不是实际的用户 请查看列出和删除用户的代码: def user_list(request): ''' Shows all of Students ''' return object_list(request, queryset = UserProfile.obje

在我当前的项目中,我想在django的管理界面之外CRUD用户

下面我们来解释一下我的问题:

1-我使用存储用户的附加属性(他们的学校、生日等)

2-问题是,通过删除用户,我可以删除配置文件,而不是实际的
用户

请查看列出和删除用户的代码:

def user_list(request):
    ''' Shows all of Students '''

    return object_list(request,
            queryset = UserProfile.objects.all() ,
            template_name = 'user_list.html' ,
            template_object_name = 'student'
            )


def user_delete(request , id):
    ''' Deletes a student based on his/her ID '''

    return delete_object(request,
            model = UserProfile ,
            object_id  = id ,
            template_name = 'delete_student.html' ,
            post_delete_redirect = reverse("user_list")
            )
我删除的是
UserProfile
而不是
User
,这看起来很正常。但我打算让它成为实际
用户的代理。我错过什么了吗

3-一般来说,我是否应该将每个模型引用到
用户
用户配置文件
?例如,假设我有一个课程模型。以下哪一种是正确的方法

class Course(models.Model):
    #stuff

    student = models.ForeignKey(Urer) 
    # OR ??
    student = models.ForeignKey(UserProfile)
我删除的是UserProfile而不是User,这看起来很正常。但我打算把它作为实际用户的代理

为什么不直接删除用户?默认情况下,Django将级联删除以摆脱UserProfile

一般来说,我应该将每个模型引用到用户或用户配置文件吗

我认为这更多的是个人偏好的问题,但我通常直接与用户联系,因为它在到达所需对象时节省了一个步骤(您不需要执行User.get_profile().student,可以调用User.student)。这对我来说也更有意义:学生是用户的财产,而不是用户的个人资料