有人可以帮我解释一下以下页面吗 http://nullege.com/codes/search/zinnia.models.Entry.objects.create
如何在 django 中使用 form.html 文件和视图函数在 zinnia 中创建条目
我知道这是基本的 python 玩类
地狱世界可以在这里找到 http://django-blog-zinnia.com/blog/
有人可以帮我解释一下以下页面吗 http://nullege.com/codes/search/zinnia.models.Entry.objects.create
如何在 django 中使用 form.html 文件和视图函数在 zinnia 中创建条目
我知道这是基本的 python 玩类
地狱世界可以在这里找到 http://django-blog-zinnia.com/blog/
对于你的第一个问题:
params = {'title': 'My entry 1', 'content': 'My content 1',
'tags': 'zinnia, test', 'slug': 'my-entry-1',
'status': PUBLISHED}
self.entry_1 = Entry.objects.create(**params)
self.entry_1.authors.add(self.authors[0])
self.entry_1.categories.add(*self.categories)
self.entry_1.sites.add(*self.sites)
这里Entry.objects.create(**params)
相当于
`Entry.objects.create(title='My entry 1', content='My conten 1', tags='zinnia, test', slug='my-entry-1', status='PUBLISHED' ),它会创建一个标题为“我的条目 1”、内容为“我的内容 1”的新条目并保存到数据库中。基本条目类看起来像这样:
class EntryAbstractClass(models.Model):
"""Base Model design for publishing entries"""
STATUS_CHOICES = ((DRAFT, _('draft')),
(HIDDEN, _('hidden')),
(PUBLISHED, _('published')))
title = models.CharField(_('title'), max_length=255)
image = models.ImageField(_('image'), upload_to=UPLOAD_TO,
blank=True, help_text=_('used for illustration'))
content = models.TextField(_('content'))
excerpt = models.TextField(_('excerpt'), blank=True,
help_text=_('optional element'))
tags = TagField(_('tags'))
categories = models.ManyToManyField(Category, verbose_name=_('categories'),
related_name='entries',
blank=True, null=True)
related = models.ManyToManyField('self', verbose_name=_('related entries'),
blank=True, null=True)
slug = models.SlugField(help_text=_('used for publication'),
unique_for_date='creation_date',
max_length=255)
authors = models.ManyToManyField(User, verbose_name=_('authors'),
related_name='entries',
blank=True, null=False)
所以行 likeself.entry_1.authors.add(self.authors[0]
将与
self.athors[0]
throughself.entry_1
相关ManyToManyField
。
至于你的第二个问题,是的,你可以创建一个form.html
视图函数来添加一个新条目,但是 zinnia 旨在与 Django Admin 界面一起使用来管理内容。它也会让你的生活更轻松。要使用它,您需要'django.contrib.admin',
在INSTALLED_APPS
您settings.py
的文件和urls.py
文件中启用。
启用 Django admin 后,您可以简单地去example.com/admin/
创建新条目。
现在,如果由于某种原因您不使用或无法使用 Django 管理员,那么views.py
添加新条目的效果如下:
#views.py
from . import forms as entryform
from zinnia.models.entry import Entry
def add_entry(request):
form = entryform.EntryForm(request.POST or None)
if not (request.method == 'POST' and form.is_valid()):
return render_to_response("forms.html", {'form': form})
title = request.POST['title']
content = request.POST['content']
#...many more..
Entry.objects.create(title=title, content=content)
return render_to_response('success.html', {'form': form,})
请注意,您还需要创建一个forms.py
来验证提交的表单。
至于您,forms.html
您需要编写一个表单,其中包含您需要的所有输入,例如“标题”和“内容”,并将其发布到此
add_entry
视图。