Ошибка слизняка в Django - PullRequest
       18

Ошибка слизняка в Django

2 голосов
/ 29 апреля 2011

Я пытаюсь интегрировать следующее приложение Блог на свой сайт, я получаю следующую ошибку для поля slug, как решить эту проблему

     TypeError at /login/

     __init__() got an unexpected keyword argument 'prepopulate_from'

     Request Method:   GET
     Request URL:   http://192.168.254.35/accounts/login/new_wind/
     Django Version:   1.2.1 SVN-1957
     Exception Type:   TypeError
     Exception Value:

     __init__() got an unexpected keyword argument 'prepopulate_from'

Это мои модели.py

from django.db import models
from datetime import datetime

class BlogPost(models.Model):
  title = models.CharField(max_length=128)
  slug = models.SlugField(prepopulate_from=('title',))
  body = models.TextField()
  published = models.BooleanField(default=True)
  date_posted = models.DateTimeField(default=datetime.now)

def __unicode__(self):
    return self.title

class Admin:
    pass

Ответы [ 2 ]

4 голосов
/ 29 апреля 2011

Ошибка говорит само за себя: SlugField не принимает ключевое слово аргумент prepopulate_from. Документы подтверждают это - он принимает только аргумент max_length в дополнение к стандартному аргументу.Это должно быть сделано в классе администратора .

Редактировать : Таким образом, ваш файл модели будет:

from django.db import models
from datetime import datetime

class BlogPost(models.Model):
  title = models.CharField(max_length=128)
  slug = models.SlugField()
  body = models.TextField()
  published = models.BooleanField(default=True)
  date_posted = models.DateTimeField(default=datetime.now)

def __unicode__(self):
    return self.title

и администратор.Файл py для того же приложения будет выглядеть следующим образом:

from django.contrib import admin
from myapp.models import BlogPost

class BlogPostAdmin(admin.ModelAdmin):
    prepopulated_fields = {"slug": ("title",)}

admin.site.register(BlogPost, BlogPostAdmin)

Если вы не понимаете, как работает сайт администратора, см. Часть 2 официального руководства по Django .

1 голос
/ 29 апреля 2011

Похоже, что в django обновлен способ предварительного заполнения, см. Этот вопрос: Существует ли простой способ заполнить SlugField из CharField?

...