首页 > 解决方案 > Django 允许用户向列表中添加新项目

问题描述

我有一个待办事项网站,允许用户创建一个列表,让他们创建事件并指定将其放入哪个列表。现在,我有一个 Reminder 模型,其中包含一个带有 General 选项的列表:

class Reminder(models.Model):
    remind_types = [('Regular', 'Regular'), ('Long Term', 'Long Term')]
    remind_lists = [('General','General')]
    title = models.CharField(max_length=100)
    description = models.TextField()  
    remind_time = models.DateTimeField(blank=True) 
    parent_user = models.ForeignKey(User, on_delete=models.CASCADE, null=True)
    type_of_remind = models.CharField(max_length=12, choices=remind_types, default='Regular')
    remind_list = models.CharField(max_length=20, choices=remind_lists, default='General')
    complete = models.BooleanField(default=False)

我正在考虑创建一个让用户输入标题并将标题添加到提醒列表的表单。我会有一个菜单,允许用户查看基于特定列表的提醒,并让提醒通过如下方式:

from .models import remind_lists
@login_required(login_url='/login')
def home(request):
    user = get_object_or_404(User, username=request.user.username)
    context = {
        'events': ToDoItem.objects.filter(parent_user=user),
        'reminders': Reminder.objects.filter(parent_user=user, type_of_remind='Regular'),
        'long_term_reminders': Reminder.objects.filter(parent_user=user, type_of_remind='Long Term'), 

    }
    for list_menu_name in remind_lists:
        context[list_menu_name] = Reminder.objects.filter(parent_user=user, type_of_remind='Long Term', remind_list=list_menu_name)
    return render(request, 'main/home.html', context)

但我有点迷失了如何做到这一点。我正在考虑创建一个仅包含 CharField 的模型,但我不知道如何仅将名称添加到提醒列表列表中。我对 Django 很陌生,所以如果它是一个简单的答案,我很抱歉。

标签: pythondjango

解决方案


推荐阅读