嗨,我这周刚开始学习Django,正在创建一个to-do-list应用程序,用户可以创建多个to-do-list,每个列表可以容纳多个项目。你知道吗
你知道吗型号.py你知道吗
class Todolist(models.Model):
listname = models.CharField(max_length=200)
date = models.DateTimeField(default=datetime.now)
user = models.ForeignKey(User, default=None, on_delete=models.CASCADE)
class Todo(models.Model):
todoname = models.CharField(max_length=200)
date = models.DateTimeField(default=datetime.now)
user = models.ForeignKey(User, default=None, on_delete=models.CASCADE)
whichlist = models.ForeignKey(Todolist, on_delete=models.CASCADE, null=True)
你知道吗视图.py你知道吗
def dolist(request, list_id):
tdlist = Todolist.objects.get(id=list_id)
current_user = request.user
user_todo = Todo.objects.filter(user=current_user, whichlist=tdlist)
return render(request, 'todolist/tdlists.html', {'tdlist': tdlist, 'todos': user_todo,'list_id':list_id})
def addtodo(request):
if request.method == 'POST':
user = request.user
list_id = request.POST.get('list_id')
Todo.objects.create(todoname = request.POST['todoname'], user=user, whichlist=list_id)
return HttpResponseRedirect(request.META.get('HTTP_REFERER'))
else:
return HttpResponseRedirect(request.META.get('HTTP_REFERER'))
.HTML模板表单
<form action="/index/todolist/addtodo" method="POST">
{% csrf_token %}
<input type="hidden" name="list_id" value={{list_id}}>
<input type="text" name="todoname"/>
<input type="submit" value="Add to-do item"/>
</form>
现在,如果我把whichlist参数Todo.objects.create创建(),可以在表单提交时创建待办事项,但未分配外键,因此它不会显示在该待办事项列表页上。我可以去Django管理站点,手动为Todo项分配whichlist,然后它就会显示在列表页面上。你知道吗
如何使todo项的foreignkey自动分配?i、 e.分配给马里奥待办事项列表的马里奥待办事项
感谢您的帮助!!你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐