Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在django中显示选定类别的特定子类别_Django_Python 3.x - Fatal编程技术网

如何在django中显示选定类别的特定子类别

如何在django中显示选定类别的特定子类别,django,python-3.x,Django,Python 3.x,最近我在写博客。其中一篇文章有类别和子类别。 这是我的模特 from django.db import models from django.contrib.auth.models import User from django.utils import timezone from ckeditor_uploader.fields import RichTextUploadingField class Category(models.Model): title = models.Cha

最近我在写博客。其中一篇文章有类别和子类别。 这是我的模特

from django.db import models
from django.contrib.auth.models import User
from django.utils import timezone
from ckeditor_uploader.fields import RichTextUploadingField

class Category(models.Model):
    title = models.CharField(max_length=50, unique=True)
    def __str__(self):
    return f"{self.title}"

class SubCategory(models.Model):
    category = models.ForeignKey(Category, on_delete=models.CASCADE)
    title = models.CharField(max_length=50, unique=True)
    def __str__(self):
        return f"{self.title}"

class Author(models.Model):
    name = models.CharField(max_length=100)
    email = models.EmailField(max_length=100)
    phone_no = models.CharField(max_length=14)
    details = models.TextField(null=True,blank=True)

    def __str__(self):
        return f"{self.name}"

class Post(models.Model):
    author = models.ForeignKey(Author, default=1,blank=True, 
        null=True, on_delete=models.SET_DEFAULT)

    category = models.ForeignKey(Category,on_delete=models.CASCADE, 
        null=True)

    sub_category = models.ForeignKey(SubCategory, 
        on_delete=models.CASCADE, null=True, blank=True)

    title = models.CharField(max_length=250)
    featured_image = models.ImageField( 
        upload_to="post_featured_image",null=False )

    content = RichTextUploadingField()
    podcast = models.FileField(upload_to="post_podcast", 
        blank=True,null=True)

    uploaded_on = models.DateTimeField(default=timezone.now)
    viewed = models.IntegerField(default=0,editable=False)

    def __str__(self):
        return f"{self.title}"
现在我可以从Django管理面板中选择文章的类别和子类别。但问题是我可以选择一个类别和任何子类别,即使子类别不是所选类别的子类别。因此,一篇文章有一个类别和一个子类别。但子类别的父类别与帖子的类别不同。所以我想我只能选择那些子类别,这些子类别是我为帖子选择的选定类别的子类别。下一个字段必须依赖于上一个字段。怎么做?
对不起,我的英语不好。谢谢。

如果要在一个页面上执行此操作,必须使用Javascript。虽然我认为您可以将类别和子类别合并为一个
输入。但那将是笨拙的。也许管理员不是最好的地方来做这件事,它会更容易的形式,你建立自己。谢谢。但是,有没有办法编辑管理面板或在管理面板页面中添加自己的javascript?有,您可以将管理模板放入
templates/admin/my_app/
中,并将其命名为您要替换的模板。请参阅文件: