Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ ForeignKey Arguments | Relations
/
Django ORM Ninja: Advanced Techniques for Developers

bookForeignKey Arguments

メニューを表示するにはスワイプしてください

To define a Many-to-One relation, models.ForeignKey is used. The first argument corresponds to the model to relate to, and the second, 'on_delete', specifies the behavior when the related object is deleted. The options include:

  • CASCADE: deleting a genre deletes all associated books;
  • PROTECT: prevents deletion if there are related books;
  • SET_NULL: sets the genre to Null if null=True in model definition;
  • SET_DEFAULT: sets a default value if the genre is deleted if there available some default value;
  • DO_NOTHING: no action, but may lead to IntegrityError.

The related_name argument in ForeignKey is useful for reverse relation from the Genre model back to Book model. If you don't specify a related_name, Django automatically creates one using the name of your model with the suffix _set (Genre.book_set.all()).

In our case works:

biography.books.all()  # provides all books of the given genre

Book.objects.filter(genre__format="history") # retrieve all books of the given genre

This structure provides a clear understanding of the Many-to-One relationship in Django, showcasing how to define and utilize it effectively.

1. What does 'models.ForeignKey' do in a Django model?

2. What happens when 'on_delete=models.CASCADE' is set in a ForeignKey relationship?

3. What is the purpose of the 'related_name' argument in a ForeignKey field?

question mark

What does 'models.ForeignKey' do in a Django model?

正しい答えを選んでください

question mark

What happens when 'on_delete=models.CASCADE' is set in a ForeignKey relationship?

正しい答えを選んでください

question mark

What is the purpose of the 'related_name' argument in a ForeignKey field?

正しい答えを選んでください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 4.  2

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 4.  2
some-alt