Python Django如何为用户模型制作模型
我正在开发注册列表应用程序。我有两个模型:用于用户的模型和用于任务的模型。我向one用户添加新任务,为每个用户添加并显示它。有什么解决办法吗?这里有一些图片 这是我的密码: 型号.pyPython 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
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'))
Tasks=Task.objects.all()