如何在Django Admin中表示这两个层次的深层关系?

时间:2018-09-11 01:13:51

标签: django django-models orm django-admin django-admin-filters

情况就是这样,

我有三种型号:

Category, Subcategory and Posts

他们之间的亲戚关系是这样的。

class Category(models.Model):
    cat=models.CharField(max_length=10)

    def __str__(self):
         return self.cat

class Subcategory(models.Model):
    cat=models.ForeignKey(Category,on_delete=models.CASCADE,null=True)
    subcat=models.CharField(max_length=10)

    def __str__(self):
         return self.subcat

class Posts(models.Model):
     title=models.CharField(max_length=15)
     subcat=models.ForeignKey(Subcategory,on_delete=models.CASCADE,null=True)
     def __str__(self): 
         return self.title

一切都很好。我已经从管理面板中添加了类别,并且也添加和链接了具有类别的子类别。但是,我也想从管理面板添加帖子。现在,问题是当我从管理面板添加帖子并选择子类别时,它列出了所有类别的所有子类别(这很明显,因为我在帖子模型中有子类别字段)。我不想这种行为,我想在保存时仅从某些类别中获取子类别。

例如:我有一个类别Django及其子类别ORM,VIEWS。另外,我还有其他类别的其他子类别,例如C ++。因此,如果我要发布帖子,并且希望该帖子来自Django类别,则它应仅在管理面板的建议中列出ORM和VIEWS。

我愿意在模型中进行修改,例如是否需要附加字段或类似的内容。任何潜在客户表示赞赏。

0 个答案:

没有答案