2016-03-22 15 views
0

自分のモデルに接続されているフォームがあります。私はそれを保存しようとしていたが、私はスラグフィールドが満足されていなかったことを私に知らせるエラーを受けていた。だから私のフォームに私はスラッグを追加し、私のタイトルから手動でスラグを作成し、それは働いた。私はすでにadmin.pyにこれを持っていますdjangoで投稿を作成したときに私のスラッグが自動的に生成されない理由

prepopulated_fields = {"slug": ("title",)} 

なぜこれが自動的に起こっていませんか?

答えて

0

私はその後、スラグが、私はそれを手動で追加することや、それをslugifyingせずに生成された後、この

def create_slug(instance, new_slug=None): 
    slug = slugify(instance.title) 
    if new_slug is not None: 
     slug = new_slug 
    qs = Post.objects.filter(slug=slug).order_by("-id") 
    exists = qs.exists() 
    if exists: 
     new_slug = "%s-%s" % (slug, qs.first().id) 
     return create_slug(instance, new_slug=new_slug) 
    return slug 


def pre_save_post_receiver(sender, instance, *args, **kwargs): 
    if not instance.slug: 
     instance.slug = create_slug(instance) 


pre_save.connect(pre_save_post_receiver, sender=Post) 

を行い、この

from django.db.models.signals import pre_save 
from django.utils.text import slugify 

をしなければならなかった他のコードを確認した後、それを考え出しましたビュー