Python Django如何为用户模型制作模型

Python Django如何为用户模型制作模型,python,html,django,ajax,Python,Html,Django,Ajax,我正在开发注册列表应用程序。我有两个模型:用于用户的模型和用于任务的模型。我向one用户添加新任务,为每个用户添加并显示它。有什么解决办法吗?这里有一些图片 这是我的密码: 型号.py class Task(models.Model): title=models.IntegerField() date = models.DateTimeField(default=datetime.now,blank=True) is_published=models.Boolean

我正在开发注册列表应用程序。我有两个模型:用于用户的模型和用于任务的模型。我向one用户添加新任务,为每个用户添加并显示它。有什么解决办法吗?这里有一些图片

这是我的密码: 型号.py

 class Task(models.Model):
    title=models.IntegerField()
    date = models.DateTimeField(default=datetime.now,blank=True)
    is_published=models.BooleanField(default=True)

 class CustomUser(models.Model):
    user = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    image=models.FileField(upload_to='photos/%Y/%m/%d/',null=True,blank=True)
  if request.method == 'POST' and request.POST['form_type'] == 'task':
    if request.is_ajax():
        addtask = AddTask(request.POST)
        if addtask.is_valid():
            user = request.user.id
            addtask.objects.filter(user=user).cleaned_data
            addtask.objects.filter(user=user).save()               
            task_object = Task.objects.filter(user=user)(addtask)
            return JsonResponse({'error': False, 'data': task_object})
        else:
            print(addtask.errors)
            return JsonResponse({'error': True, 'data': addtask.errors})
    else:
        error = {
            'message': 'Error, must be an Ajax call.'
        }
        return JsonResponse(error, content_type="application/json")



    addtask = AddTask()
    task = Task.objects.order_by('-date').filter(is_published=True)
视图.py

 class Task(models.Model):
    title=models.IntegerField()
    date = models.DateTimeField(default=datetime.now,blank=True)
    is_published=models.BooleanField(default=True)

 class CustomUser(models.Model):
    user = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    image=models.FileField(upload_to='photos/%Y/%m/%d/',null=True,blank=True)
  if request.method == 'POST' and request.POST['form_type'] == 'task':
    if request.is_ajax():
        addtask = AddTask(request.POST)
        if addtask.is_valid():
            user = request.user.id
            addtask.objects.filter(user=user).cleaned_data
            addtask.objects.filter(user=user).save()               
            task_object = Task.objects.filter(user=user)(addtask)
            return JsonResponse({'error': False, 'data': task_object})
        else:
            print(addtask.errors)
            return JsonResponse({'error': True, 'data': addtask.errors})
    else:
        error = {
            'message': 'Error, must be an Ajax call.'
        }
        return JsonResponse(error, content_type="application/json")



    addtask = AddTask()
    task = Task.objects.order_by('-date').filter(is_published=True)
html页面

       {% if task %}
                    {% for tas in task %}
                Task content



                        {% endfor %}
                        {% else %}

                        {% endif %}

因此,错误在于您从未将自定义用户模型任务模型连接起来。他们应该有一对多的关系。完成后,您只需从数据库中检索与感兴趣的用户相关的任务,并将其发送到HTML页面。然后只显示与一个特定用户相关的任务。

在将数据呈现到模板之前,您是否应该在任务模型中添加与CustomUser的关系,并在视图中按所有者筛选任务

类任务(models.Model):
title=models.IntegerField()
date=models.DateTimeField(默认值=datetime.now,blank=True)
is_published=models.BooleanField(默认值=True)
user=models.ForeignKey(CustomUser)
CustomUser类(models.Model):
user=models.OneToOneField(settings.AUTH\u user\u MODEL,on\u delete=models.CASCADE)
image=models.FileField(上传到='photos/%Y/%m/%d/',null=True,blank=True)
鉴于:

。。。
addtask=addtask()
task=task.objects.filter(is_published=True,user_id=request.user.id).order_by('-date'))
  • 如果要创建CustomUser模型,应该创建一个类并从AbstractBaseUserAbstractUser()继承它

  • 您的任务模型与CustomUser没有关系。您创建了AddTask(?)实例,但没有将其与任何用户绑定

  • 您没有提交呈现HTML模板的视图,但我认为您的查询类似于返回所有任务的
    Tasks=Task.objects.all()