Я довольно новичок в Django, и я пытаюсь создать поле пули в моделях django. Таким образом, после Джанго 101 учебника, я попытался создать поле пробкового из следующего models.pyAuto create slug field in django 1.5 models - пример из учебника 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() '. Первый - это просто вызов атрибута (как показывает результат '>'), в то время как последний на самом деле вызывает метод сохранения –
@ TimmyO'Mahony: Мне казалось, были полным идиотом. Это было действительно недостающее(), которое вызывало это. Пожалуйста, напишите как ответ, и я соглашусь с этим. – AJW
Только совет: используйте '' slug'' вместо '' slugp''. Упрощает многое, поскольку это имя по умолчанию, ожидаемое многими частями Django, освобождая вас от необходимости явно указывать поле пули в некоторых случаях. – hayavuk