related_name、ヌル、空白のサプリメントでのDjangoのモデル

ブランク

Trueに設定すると、フィールドが空にすることができます。Falseに設定すると、フィールドが必須です。CharFieldですTextFieldの文字フィールドと空の文字列はnullを格納するために使用されます。

nullの真実であると認めた場合は、フィールドは、デフォルトでは許可されていません。

ヌル

Trueに設定すると、NULLが格納nullに使用ジャンゴ。タイプ、日付、時刻、および数値フィールドのタイプは、ヌル文字列を受け付けません。だから、設定IntegerFieldと、DateTimeField型タイプフィールドを空にすることができ、空白の必要性は、ヌルがTrueに設定されています。

Trueの場合は、null値をNULLとして保存されます。デフォルトはFalseです。

あなたは空のBooleanFieldを設定したい場合はNullBooleanFieldタイプフィールドを選択することができます。

シンプルなモデルを確立

class Person(models.Model):
    GENDER_CHOICES=(
        (1,'Male'), (2,'Female'), ) name=models.CharField(max_length=30,unique=True,verbose_name='姓 名') birthday=models.DateField(blank=True,null=True) gender=models.IntegerField(choices=GENDER_CHOICES) account=models.IntegerField(default=0)  

  • nullはヌルがTrue =場合は、フィールドのデータベースが空であることを示し、データベースの目的です。
  • フォーム、空白= Trueの場合、あなたが埋めることができないときに、このような管理インターフェイスの下で記録時間モデルを追加すると、このフィールドに入力することをフォームに対して空白。視覚フィールドが太字ではないことがわかり

related_name:  私たちの使用オブジェクトのコレクションによって照会時に複数のオブジェクトの代わりに関わると同等の、名前_setを取得するためにテーブルを使用

私は2つのモデルを定義し、一つは多くの種類とみなさ冊の出版され、著者は、著者です。

クラスの人(models.Model)。
    名前 = models.CharField(verbose_name = ' 著者名'、MAX_LENGTH = 10 
    年齢 = models.IntegerField(verbose_name = ' 著者時代' 


クラスブック(models.Model): = models.ForeignKey(人、related_name = ' person_book ' 
    タイトル = models.CharField(= verbose_name ' 書籍名'、MAX_LENGTH = 10 
    pubtime = models.DateField(= verbose_name ' 公開' 


我々は1人の著者が本を出版したものを照会する場合は、どのように我々はそれをしたいですか?
それは、その多くの側面アウトチェックを通じて、あります

作者への最初のクエリ = Person.objects.fiter(あなたの条件)
人物オブジェクトを返します。

クエリに関連した主題次の人のすべての書籍、我々は逆ルックアップテーブル名に基づいて、クエリベースのオブジェクトの前で言ってきました
ブック = person.book_set.all()
各オブジェクトのDjangoのデフォルト値は、メインテーブルが外部キー属性は、すべてのマスタテーブルによるサブテーブルに属する情報を照会することができるであります。
デフォルトでは、小文字のプラスデフォルト返しますのQueryDictオブジェクトを表すために_set()内のプロパティサブテーブル名の名前で、あなたは状況に応じて、クエリや他の操作を続けることができます。

実際のプロジェクトでは、ほとんどのかrelated_nameを使用します
あなたは上記の定義があまりにも面倒であることを感じた場合、あなたはまた、ときに良い名前の定義に外部キーメインテーブルの外部キーを定義することができます。例えば、使用中のブックのテーブルをrelated_name: = models.ForeignKey(人、related_name = ' person_books ' 
したがって、上記の要件を達成するために、あなたは(person.book_set.all使用することができます)
あなたも(person.person_books.all使用することができます)

 

 

 

https://www.cnblogs.com/pyspark/p/8638180.html

おすすめ

転載: www.cnblogs.com/hanfe1/p/12469760.html