1
저는 장고를 처음 사용하고 장고 모델에서 슬러그 필드를 자동 생성하려고합니다. 그래서, 장고 (101) 튜토리얼 다음, 나는 다음과 같은 models.py에서Django 1.5 모델의 자동 생성 슬러그 필드 - django 튜토리얼의 예
class Poll(models.Model):
question = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
slugp = models.SlugField(max_length=255, unique=True)
def __unicode__(self):
return self.question
def save(self, *args, **kwargs):
self.slugp = slugify(self.question)
super(Poll, self).save(*args, **kwargs)
를 슬러그 필드를 만들려고 한 후 다음과 같이 내가 장고 API를 사용
from writedb.models import Poll, Choice
from django.utils import timezone
p = Poll(question="What's new?", pub_date=timezone.now())
p.save
# out: <bound method Poll.save of <Poll: What's new?>>
p.slugp
#out: u''
을 내가 할 무엇이든 slugp 필드가 채워지지 않는 것 같습니다 (또는 내가 잘못 접근하는 방식입니까?) 데이터베이스에서 채워지는 필드가 보이지 않습니다. - 내가 뭘 잘못하고 있는지 궁금합니다. 모든 포인터가 많이 감사하게 될 것입니다 - 그리고 이것이 101 가지 질문이라면 유감스럽게 생각합니다.
오타가 맞는지 확실하지 않지만'p.save'는'p.save()'여야합니다. 전은 단지 속성을 호출하는 것입니다 (출력에 의해 보여지는 것처럼'). 실제로 후자는 save 메소드를 호출합니다. –
@ TimmyO'Mahony : 나는 완전한 바보가되었습니다. 참으로 이것이 실종 된 것입니다. 답으로 써 주시면 제가 받아 들일 것입니다. – AJW
단지 팁 :''slugp'' 대신에''slug''를 사용하십시오. Django의 많은 부분에서 기대할 수있는 기본 이름이기 때문에 많은 것을 단순화하여 어떤 경우에는 슬러그 필드를 명시 적으로 지정하지 않아도됩니다. – hayavuk