2017-11-01 17 views
0

私はSlugFieldをあらかじめ準備しようとしていますが、それは起こっていません。 私はPython 3.6.1とDjango 1.11を使用します。Django "prepopulated_fields"が機能しませんでした

ここに私のコードです。

models.py
class Post(models.Model): 
    STATUS_CHOICES = (
     ('draft', 'Черновик'), 
     ('published', 'Опубликовано'), 
    ) 
    title = models.CharField(max_length=250) 
    slug = models.SlugField(max_length=250, unique_for_date='publish') 
    author = models.ForeignKey(User, 
          related_name='blog_posts', 
          default=1,) 
    body = RichTextUploadingField(blank=True, 
           default='', 
           config_name='awesome_ckeditor') 
    publish = models.DateTimeField(default=timezone.now) 
    created = models.DateTimeField(auto_now_add=True) 
    updated = models.DateTimeField(auto_now=True) 
    status = models.CharField(max_length=10, 
          choices=STATUS_CHOICES, 
          default='draft') 
    objects = models.Manager() 
    published = PublishedManager() 

    def __str__(self): 
     return self.title 

    class Meta: 
     ordering = ('-publish',) 


    def get_absolute_url(self): 
     return reverse('blog:post_detail', 
         args=[self.publish.year, 
          self.publish.strftime('%m'), 
          self.publish.strftime('%d'), 
          self.slug]) 

そして、これは

class PostAdmin(admin.ModelAdmin): 
    list_display = ('title', 'slug', 'author', 'publish', 
       'status') 
    list_filter = ('status', 'created', 'publish', 'author') 
    search_fields = ('title', 'body') 
    prepopulated_fields = {"slug": ("title",)} 
    raw_id_fields = ('author',) 
    date_hierarchy = 'publish' 
    ordering = ['-publish', 'status'] 


admin.site.register(Post, PostAdmin) 

サイトは、Herokuの上でホストされている

admin.pyです。 別の方法でスラッグフィールドを自動生成できるのでしょうか?

+0

このページにjavascriptエラーがありますか? –

+0

はい。私はこれを持っています。 「キャッチされていないにReferenceError:154 キャッチされないにReferenceError:GRPはactions.min.jsで が定義されていないGRPがprepopulate.min.jsで 定義されていない:42 キャッチされない例外TypeError:$はchange_form.jsでの関数 ではありません。 change_form.jsで5 :20 キャッチされない例外TypeError:prepopulate_init.jsで3 :$はprepopulate_init.jsで機能 ない10" –

+0

のJavaScriptエラーがジャンゴJSにプリpolulateスラグフィールドが防止されます。あなたは、grapelliアドオンについてのjavascriptのエラーを理解しようとすることができます(この質問を参照してくださいhttps://stackoverflow.com/questions/12025231/django-cms-with-grappelli-messed-up-the-layout-for-admin-cms) -pages)、saveメソッドをオーバーライドして自分自身にslugフィールドを設定します。 –

答えて

0
 
from autoslug import AutoSlugField 

slug = AutoSlugField(populate_from='title', unique_for_date='publish') 
+0

ありがとうございます。それは正常に動作します。 –

関連する問題