Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/288.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
Python django cms默认菜单扩展菜单还是CMSAttachMenu?_Python_Django_Django Cms - Fatal编程技术网

Python django cms默认菜单扩展菜单还是CMSAttachMenu?

Python django cms默认菜单扩展菜单还是CMSAttachMenu?,python,django,django-cms,Python,Django,Django Cms,我正在尝试使用django cms构建一个非常简单的wiki类型的站点 我有1个应用程序,定义了2个模型: class Subject(models.Model): label=models.CharField class Topic(models.Model): ... cat = models.ForeignKey('topics.Category', blank=True, default=None, help_text=u'Please

我正在尝试使用django cms构建一个非常简单的wiki类型的站点

我有1个应用程序,定义了2个模型:

class Subject(models.Model):
    label=models.CharField

class Topic(models.Model):
    ...
    cat = models.ForeignKey('topics.Category',
    blank=True,
    default=None,
    help_text=u'Please choose a category for this topic',
    null=True
)
我试图让默认菜单显示主题类作为顶级选项,主题类作为每个主题的子级别。总共有4门课。例如:

主题1

-主题1

-专题2

主题2

-专题3

-主题4

等等

我已经阅读了所有django cms文档,但我仍然感到困惑。在my menu.py中,我应该扩展menu还是CMSAttachMenu?我需要4台不同的发电机吗?使用生成器时如何引用ForeignKey字段


我是初学者,非常感谢您的帮助

您可以这样做:

menu.py 从django.core.urlResolver反向导入 从django.utils.translation导入ugettext\u lazy作为_ 从cms.menu\u基地导入CMSAttachMenu 从menus.base导入导航节点 从menus.menu\u pool导入菜单\u pool from.models导入主题 类主题NucMstatch菜单: 名称=\u主题菜单 def获取节点自身,请求: 节点=[] cnt=0 对于Subjects.objects.all中的subject: 主题节点id=cnt 节点=导航节点 subject.label, 反转'subject\u view\u detail',args=subject.pk,, 主题节点id nodes.appendnode 对于subject.topics.all中的主题: cnt+=1 节点=导航节点 topic.name, 反转'topic\u view\u detail',args=topic.pk,, cnt, 主题\节点\ id父对象 nodes.appendnode cnt+=1 返回节点 菜单\u pool.register\u菜单对象菜单 然后,您可以将此菜单添加到AppHook或从管理员处附加它