Django の ForeignKey パラメータの使用法
<スパン リミットチョイス :
from django.db import models
from django.contrib.auth.models import User
from django.db.models import Q
class Book(models.Model):
name = models.CharField(max_length=20)
user = models.ForeignKey(User, limit_choices_to={'is_staff': True})
#user = models.ForeignKey(User, limit_choices_to=Q(is_staff=True))
def __unicode__(self):
return self.name
>>>Book.objects.filter(user=u)です。
>>>User.objects.filter(Book__name__startswith='hhh')です。
limit_choices_toは辞書形式でも、上の例のようにQで表現することもできます。
しかし、Qフォームを使用する場合、limit_choices_toに使用するフィールドはraw_id_fieldsに現れないと、失敗します。そして、辞書形式は通常通り動作します。
class BookAdmin(admin.ModelAdmin):
list_display = ['id', 'name', 'user'].
raw_id_fields = ('user',)
admin.site.register(Book, BookAdmin)
その場合、limit_choices_toの効果は無効となります。
関連名 :
<スパン
テーブル内の複数のフィールドが同じテーブルを指している場合、エラーが発生します。システムは、別のテーブルからXXX_set属性にアクセスして、どの属性がアクセスされているかを知る術がない。この場合、各フィールドに related_name 属性を定義し、別のテーブルからアクセスされたときに、 related_name の値に基づいて個々の属性を取得するようにする必要があります。
例
- クラス dutyTeam(models.Model):
- '' <スパン '''
- related_name属性はここで定義する必要があります。
- ''' <スパン
- first=models.ForeignKey(watch,verbose_name=) 'ファーストウォッチャー' ,related_name=。 'ファースト' )
- second=models.ForeignKey(watch,related_name=) 'セカンド' ,verbose_name=。 <スパン '待機勤務者' )
- urgent=models.ForeignKey(watch,related_name=) '緊急' ,verbose_name=。 <スパン '緊急連絡先' )
related_name が定義されている場合、クエリ "_set" は related_name に置き換えられるため、 "_set" を使用するとエラーが報告されます。
related_name='+' または '+': 'user+' で終わる場合、逆引きクエリはできません。
<テーブル
パラメータと値の辞書(`Database API Reference`_を参照)は、このオブジェクトに対してadminが利用できるオプションを制限するために使用されます。を使用します。
<スパン
モデル.LazyDate
limit_choices_to = {'pub_date__lte' : models.LazyDate()}
関連するpub_dateが現在の日付より前のオブジェクトの選択のみを許可する。
このパラメータは
インライン編集オブジェクトの場合、amdinに表示可能な関連オブジェクトの最大数です。つまり、最大10個のトッピングがあるピザと言うことであれば
これは、ピサの斜塔が10階建てしかないとは言いませんが...。ピサの斜塔は10階建て以上であることもあります。このパラメータは管理画面のみを制御します。
<スパン 最小管理者数 管理画面に表示される関連オブジェクトの最小値です。通常、作成時に表示される
これから取得する整数値(id値)に対して、ドロップダウンメニューの代わりにテキストボックスを表示する。関連するオブジェクトが何行も何行もある場合。を使うより、これを使った方がはるかに効率的です。
とは併用できません。
リレーションシップの名前です。例えば、以下の場合
models.ForeignKey(Pizza)
<スパン
<スパン
関連名
しかし
models.ForeignKey(Pizza, related_name="munchie")
では
このパラメータは、あるオブジェクトが他のオブジェクトと複数回関連付けられる場合にのみ、本当に役に立ちます。例えば
ストーリー
models.ForeignKey(Category, related_name="primary_storys")
models.ForeignKey(Category, related_name="secondary_storys")
... このように
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ハートビート・エフェクトのためのHTML+CSS
-
HTML ホテル フォームによるフィルタリング
-
HTML+cssのボックスモデル例(円、半円など)「border-radius」使いやすい
-
HTMLテーブルのテーブル分割とマージ(colspan, rowspan)
-
ランダム・ネームドロッパーを実装するためのhtmlサンプルコード
-
Html階層型ボックスシャドウ効果サンプルコード
-
QQの一時的なダイアログボックスをポップアップし、友人を追加せずにオンラインで話す効果を達成する方法
-
sublime / vscodeショートカットHTMLコード生成の実装
-
HTMLページを縮小した後にスクロールバーを表示するサンプルコード
-
html のリストボックス、テキストフィールド、ファイルフィールドのコード例