2011-11-14 4 views
1

실용적인 Django 프로젝트와 함께 따라 왔습니다. 아주 좋은 책이지만, 많은 버그가있는 것 같습니다. 다행히도이 웹 사이트에는 https://bitbucket.org/philgyford/practical-django-projects/src이라는 몇 가지 수정 사항이 있습니다. 내 최신 오류는 다음과 같습니다 save() got an unexpected keyword argument 'force_insert'Django 오류 : save()에 예상치 못한 키워드 인수 'force_insert'가 있습니다.

원래의 코드를했다 : 나는 심지어 주석을 시도

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) 

:

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') 

내가로 (오류를 제거하려고) 저장 방법을 변경 # del bit도 도움이되지 않습니다. 나는 장고를 사용하고있다. 1.3.1. 왜이 오류가 발생하는지 어떤 아이디어?

답변

1

저장 오버라이드의 두 번째 버전은 두 개의 if 문과 del 행을 없애도 괜찮을 것입니다.

여전히 작동하지 않는다면 개발 서버가 실제로 models.py 파일을 다시로드하는지 확인하십시오. 가장 빠른 방법은 실행중인 CTRL + C를 누른 다음 python manage.py runserver을 다시 호출하는 것입니다. 중요한 것은 아니지만 models.pyc도 제거 할 수 있습니다 (models.py의 컴파일 된 버전). 새 코드가 실행 중인지 확실히 확인하십시오.

Practical Django Projects는 전반적으로 훌륭한 책이지만 실제로는 입니다. 배울 새로운 리소스를 찾아 볼 수 있습니다.

+0

그냥 직접 수정 했으므로 북마크 모델에서도이를 수행해야했습니다. 스 니펫 모델을 사용하기 때문에. – Superdooperhero

관련 문제