Django3.2开发待办应用时新增任务不显示在页面的问题求助
问题根因
你在新增待办任务的逻辑中,没有为任务的user外键字段赋值,导致新创建的任务user字段为null。而首页查询逻辑是过滤当前登录用户关联的任务,因此无法查询到未关联用户的任务数据。
解决方案
修改views.py中的add_content视图函数,创建任务实例时传入当前登录用户:
def add_content(request): user = request.user current_date = timezone.now() # 新增user参数绑定当前登录用户 newItem = user_active(content=request.POST.get('content'), user=user) print('New item:', newItem) newItem.save() return redirect('/')
同时建议为需要登录才能访问的视图添加登录校验装饰器,避免未登录用户访问时出现异常:
- 给
home、add_content视图加上@login_required装饰器
@login_required def home(request): # 原有逻辑保持不变 @login_required def add_content(request): # 修改后的逻辑
- 在项目
settings.py中配置登录跳转地址:
LOGIN_URL = '/login/'
额外优化建议
- 遵循Django模型命名规范,将模型类名
user_active改为大驼峰格式UserActive,提升代码可读性 - 新增任务时增加内容非空校验,避免插入无效的空内容任务
- 可以在模板的任务列表处添加无任务时的提示,当用户没有任务时页面不会出现空白表格
内容的提问来源于stack exchange,提问作者Zani123
相关产品推荐
相关产品推荐

