我一直在关注实用Django项目。很不错的书,但它似乎有很多的错误。幸运的是,这个网站有一些修正:https://bitbucket.org/philgyford/practical-django-projects/src
。我的最新的错误是:save() got an unexpected keyword argument 'force_insert'
Django错误:save()得到了一个意外的关键字参数'force_insert'
原始代码是:
class Snippet(models.Model):
title = models.CharField(max_length=255)
language = models.ForeignKey(Language)
author = models.ForeignKey(User)
description = models.TextField()
description_html = models.TextField(editable=False)
code = models.TextField()
highlighted_code = models.TextField(editable=False)
pub_date = models.DateTimeField(editable=False)
updated_date = models.DateTimeField(editable=False)
objects = managers.SnippetManager()
tags = TagField()
class Meta:
ordering = ['-pub_date']
def __unicode__(self):
return self.title
def save(self, force_insert=False, force_update=False):
if not self.id:
self.pub_date = datetime.datetime.now()
self.updated_date = datetime.datetime.now()
self.description_html = markdown(self.description)
self.highlighted_code = self.highlight()
super(Snippet, self).save(force_insert, force_update)
@models.permalink
def get_absolute_url(self):
return ('cab_snippet_detail',(), { 'object_id': self.id })
def highlight(self):
return highlight(self.code,
self.language.get_lexer(),
formatters.HtmlFormatter(linenos=True))
# See http://blog.sveri.de/index.php?/categories/2-Django
tagging.register(Snippet, tag_descriptor_attr='etags')
我改变了保存方法(试图摆脱错误的)来:
def save(self, *args, **kwargs):
if not 'force_insert' in kwargs:
kwargs['force_insert'] = False
if not 'force_update' in kwargs:
kwargs['force_update'] = False
# del kwargs['force_insert']
if not self.id:
self.pub_date = datetime.datetime.now()
self.updated_date = datetime.datetime.now()
self.description_html = markdown(self.description)
self.highlighted_code = self.highlight()
super(Snippet, self).save(*args, **kwargs)
我甚至尝试取消对#del位,这也没有帮助。我使用Django 1.3.1。任何想法,为什么我得到这个错误?
只是自己修复它,事实证明我也需要在书签模型上完成它,因为它使用片段模型。 – Superdooperhero