2011-07-26 21 views
0

Djangoは外部キーをスラッグとして受け入れないので、現在私のモデルにはスラッグは設定されていませんが、モデルにはスラッグフィールドがあります。私のスラッグをすばやく取得するために、すべての問題をリストしたページを作成し、{{ issue|slugify }}を使用してIDでソートしました(これはPostgreSQLのテーブルで同じIDです)。 PostgreSQLでは、問題テーブルもIDでソートできます。複数のPostgreSQL行にデータを挿入する

私の質問は、どのようにニュースのスラッグをデータベースに挿入するのですか? **私はPostgreSQLに精通していないので、赤ちゃんの話がうまくいくでしょう。

+0

私はここで少し混乱していますが、あなたもそうだと思います。 'ForeignKeyField'は、あるテーブルの整数フィールドで、他のテーブルのレコードのIDを含みます。 'SlugField'はいくつかの特別な制約/機能を持つ' CharField'です。 2つは無関係です。また、Djangoのサイトは技術的に挑戦されているサイトではないこともわかります。 Djangoではなく、WordPressでポイント・アンド・クリックで逃げることができます。 –

+0

"私のモデルには現在のところスラグの設定はありませんが、モデルにはスラッグフィールドがあります。"これはかなり矛盾しています。だから私はあなたが尋ねているものが肯定的ではない – John

+0

あなたは正しい。申し訳ありませんが、タイプミスがありました。私が意味することは、私がスラグフィールドを持っていることですが、各アイテムのフィールドにはデータがありません。ですから、私がしたいのは、実際には管理者の各項目を実際に通過することなく、slugfieldをテキストで更新することです。私はそれを行うための他の方法があると確信しているので、それはタイムリーなものになるでしょう。私が求めているのは、各項目のスラッグフィールドを更新することだけです。私は 'SlugField'がシンプルな' CharField'であることを知っています。私はWordpress、btwを超えて成長しました。私は過去2ヶ月間使って以来、これまでDjangoとうまくいくことができました。ディア・ゴッド。 – AAA

答えて

1

あなたはちょうどあなたがこのようにそれを行うことができる必要があり、すべての既存のモデルのためのあなたのslugフィールドの値を更新するために探している場合:

from django.db import F 
from django.template.defaultfilters import slugify 
YourModel.objects.all().update(your_slug_field=slugify(F('the_field_youre_slugging'))) 

私もこれをテストしていません。

ただし、レコードの作成時にこのスラッグフィールドの設定方法については説明しません。これを行うには複数の方法があります:save()メソッド、callableをデフォルトとしてオーバーライドするだけでなく、さまざまな利点と欠点を持つ多数のメソッドをオーバーライドします。

+0

私はテストアップデートをしました。これは、Django管理者のSlugfieldを 'default'と言います。 – AAA

関連する問題