2

私の admin.py ファイルでは、 Prepopulated_fields を使用してタイトルを自動スラッグしようとしています。ただし、短い 2 文字の単語には問題があるようです。「Is」、「the」、または「to」を入力すると、スラッグから空白になります。また、「前」を試してみたところ、Eボタンを押した瞬間にそれも消えました。これは、事前入力されたフィールドで予期されていることですか、それとも何か間違っていますか?

モデル.py

title = models.CharField(max_length=255)
entry = models.TextField()    
date_edited = models.DateTimeField(auto_now=True, verbose_name = "Last edited")
date_posted = models.DateTimeField(verbose_name="Post Date")
slug = models.SlugField(max_length=255, unique=True)

Admin.py

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

2 に答える 2

2

@Alasdairが彼の回答で述べたように、prepoulated_fieldsを使用すると無視される単語があります。これらの単語を処理するjsファイルをオーバーライドする代わりに、save_modelのタイトルからslugフィールドを変更しました。

def save_model(self, request, obj, form, change):        
    if not change:
        obj.slug = slugify(('%s') % obj.title)
    obj.save()
于 2012-05-31T15:47:11.770 に答える
1

prepopulated_fieldsオプションを正しく使用しています。django管理アプリに含まれているurlify.jsスクリプトを見ると、無視されている単語のリストがあることがわかります。

ファイル自体を編集する以外に、動作を変更する簡単な方法を知りません。これは理想的ではありません。

于 2012-05-31T14:49:21.640 に答える