如何向博客项目django添加类别

如何向博客项目django添加类别,django,django-models,foreign-keys,Django,Django Models,Foreign Keys,我通过观看许多开源课程开发了一个博客项目,并创建了我自己的django自定义管理仪表板,在这里我想向我的博客项目添加一个类别选项,我也观看了一些教程,但没有发现它们有帮助 models.py 他们正在从另一个应用程序中获取数据 models.py 和查看功能: def create_blog(request): if request.method =='POST': form = CreateBlogForm(request.POST) if form.i

我通过观看许多开源课程开发了一个博客项目,并创建了我自己的django自定义管理仪表板,在这里我想向我的博客项目添加一个类别选项,我也观看了一些教程,但没有发现它们有帮助

models.py

他们正在从另一个应用程序中获取数据 models.py

和查看功能:

def create_blog(request):
    if request.method =='POST':
        form = CreateBlogForm(request.POST)
        if form.is_valid():
            form.save()
            form = CreateBlogForm()
    else:
        form = CreateBlogForm()
    base = BaseHeader.objects.all()
    sub =  Submenu.objects.all()
    create = CreateBlog.objects.all()
    category = Category.objects.all()
    context = {
        'form' : form,
        'createblog' : create,
        'category' : category,
        'menu' : base,
        'sub_menu' : sub,

为什么不将该类别设为选定项

CATEGORY_CHOICES = (
    ('sports', 'sports'),
    ('tech', 'tech'),
    ('politics', 'politics')
)
category = models.CharField(max_length=100, choices=CATEGORY_CHOICES, blank=False)
您现在可以像访问任何其他字段一样访问它,因此假设用户单击“Politics articles”,您可以添加一个.filter(category=“Politics”)并通过{article.category}在模板中访问它


我不知道你的代码中为什么会有这么多行,也不知道你的项目规模,但我会这样做。

我不明白你到底想实现什么。您已经向CreateBlog添加了一个类别字段,对吗?你面临的问题是什么?我其实想实现链式下拉来创建博客
def create_blog(request):
    if request.method =='POST':
        form = CreateBlogForm(request.POST)
        if form.is_valid():
            form.save()
            form = CreateBlogForm()
    else:
        form = CreateBlogForm()
    base = BaseHeader.objects.all()
    sub =  Submenu.objects.all()
    create = CreateBlog.objects.all()
    category = Category.objects.all()
    context = {
        'form' : form,
        'createblog' : create,
        'category' : category,
        'menu' : base,
        'sub_menu' : sub,
CATEGORY_CHOICES = (
    ('sports', 'sports'),
    ('tech', 'tech'),
    ('politics', 'politics')
)
category = models.CharField(max_length=100, choices=CATEGORY_CHOICES, blank=False)