私はdjango(1.10)のWebサイトを作成し、allauthを使用して承認しています。私はdjangoでユーザモデルを拡張したくないのです。なぜなら、allauthはすでに複雑なプロセスに複雑さを加えるからです。djangoモデル - 複数のテーブルにまたがるユーザーデータを取得する
- get_all_subscriptions_for_user(ユーザー= specified_user)
- get_unexpired_subscriptions_for_user(ユーザー= specified_user)
次の方法があります
私は(カスタムのUserManager?)モデルを作成したいです注:期限切れの定期購読は、今日の日付のend_dateを持つ定期購読によって定義されます。
これは理想的には、私は、データベースへの1回の旅行でこのデータをフェッチすることができ、カスタム・ユーザー・マネージャを、持っていると思います
from django.db import models
from django.contrib.auth.models import User
#...
class Subscription(models.Model):
token = models.CharKey()
start_date = models.DateTime()
end_date = models.DateTime()
# other attributes
class UserSubscription(models.Model):
user = models.ForeignKey(User)
subscription = models.ForeignKey(Subscription)
# In view
def foo(request):
user = User.objects.get(username=request.user)
# how can I implement the following methods:
# get_all_subscriptions_for_user(user=specified_user)
# get_unexpired_subscriptions_for_user(user=specified_user)
以下の私のmodels.pyの抜粋である - しかし、私はありませんカスタムユーザーモデルを持たずにカスタムユーザーマネージャを使用できるかどうかを確認してください。
[[脇]]
それがFKとしてユーザーを持っている(私のプロジェクトで)他のアプリケーションに大混乱を天下ので、私は、カスタムモデルを使用しないようにしようとしています。 makemigrations
とmigrate
一貫性のない移行の歴史についてのメッセージ