0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

#django って別々のアプリケーションのモデル同士でもリレーション・アソシエーションを設定できるの? -> できるっぽい

Last updated at Posted at 2019-05-15

できるっぽい。

./user/models.py

カスタムモデルなのは特に意味なし。

from django.db import models

from django.contrib.auth.models import AbstractUser

class User(AbstractUser):
    pass

./blog/models.py

from django.db import models
from user.models import User

class Blog(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='blogs')


shell

In [1]: u = User.objects.create(username="yumainaura")

In [2]: Blog.objects.create(user_id=u.id)
Out[2]: <Blog: Blog object (3)>

In [3]: u.blogs
Out[3]: <django.db.models.fields.related_descriptors.create_reverse_many_to_one_manager.<locals>.RelatedManager at 0x11197fc50>

NOTE

こちらの記事を読んでどうなんだろう?と思い確認。

アプリケーションを独立させると、他プロジェクトでの再利用性と、アプリケーション単位でダンプファイル操作が可能になるメリットがあります。

「users」はcookiecutter-djangoでも使われている名前です。こちらで統一するのがよいと思います。
参考:cookiecutter-djangoを使ってみた

Django ユーザー カスタマイズ方法 - Qiita

Original by Github issue

チャットメンバー募集

何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

Twitter

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?