如何在Mezzanine Django中设置菜单

0 投票
1 回答
934 浏览
提问于 2025-04-18 00:33

我创建了一个 model.py 文件,在里面定义了我的类,像这样:

from django.db import models
from mezzanine.pages.models import Page

class Author(Page):
    dob = models.DateField("Date of birth")

class Book(models.Model):
    author = models.ForeignKey("Author")
    cover = models.ImageField(upload_to="authors")

然后我把我的 HTML 页面放到 templates folder 里,并在 urls.py 文件中定义了网址。

我运行命令 python manage.py collecttemplates 来获取所有的模板。

现在我访问 127.0.0.1/8000/page1/ 来查看我的页面。

**问题 1:如何通过管理界面把这个页面放到主页的菜单里?

问题 2:如果我访问 http://127.0.0.1:8000/admin/conf/setting/,出现错误 'NoneType' object has no attribute 'split',该怎么解决?

问题 3:如何从在 mezzanine 界面创建的表单中获取 POST 数据?**

更新:

from django.db import models
from mezzanine.pages.models import Page
class Author(Page):
    dob = models.DateField("Date of birth")

class Book(models.Model):
    author = models.ForeignKey("Author")
    cover = models.ImageField(upload_to="authors")

还有 admin.py 文件,内容是:

from django.contrib import admin
from mezzanine.pages.admin import PageAdmin
from .models import Author  

admin.site.register(Author, PageAdmin)

现在我输入这些命令:python manage.py syncdb, python manage.py migrate,
然后打开 Python shell,输入 Author.objects.create(dob = "12/12/2014")

这会产生一个错误,提示作者未定义。确实如此,因为我的数据库里没有创建任何表。?!

1 个回答

0

我猜你正在Mezzanine网站上学习内容架构的教程。这个教程对初学者来说假设了很多前提,这并不是很理想。如果你还没看过,建议你还是去看看。这里是链接:http://mezzanine.jupo.org/docs/content-architecture.html

关于问题#1的回答:你可以通过页面管理后台添加新的内容类型,链接是:http://127.0.0.1:8000/admin/pages/page/ 在下拉菜单中选择“添加...”来选择内容类型,然后在接下来的配置页面上,你可以选择这个内容在菜单中显示的位置。

针对你的更新:

在Django/Mezzanine的Python命令行中:

from <your app> import models

然后尝试输入 models.Author.objects.create(title="Dr. Seuss")

目前对问题#2和#3没有想法。

撰写回答