如何在Mezzanine Django中设置菜单
我创建了一个 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 个回答
我猜你正在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没有想法。