【发布时间】:2021-06-19 01:10:09
【问题描述】:
首先,我找到了一些以前的解决方案,但它们已经过时了,不推荐用于当前版本的 Django。我想要做的是我有一个通过外键关系绑定到用户的监视列表模型,我想要的是在每次创建用户时创建一个监视列表,以便它自动绑定到所述用户。我有一些模型和模型管理器,但我真的不知道如何连接它们,希望能得到一些帮助。我已经尝试了一些方法,但最终都创建了用户,但没有创建关注列表。
class UserMananger(BaseUserManager):
def create_user(self, email, password=None, **extra_fields):
"""create and save new user"""
if not email:
raise ValueError("Users must have an email address")
user = self.model(email=self.normalize_email(email), **extra_fields)
user.set_password(password)
user.save(using=self.db)
return user
class User(AbstractBaseUser, PermissionsMixin):
"""User model"""
email = models.EmailField(max_length=255, unique=True)
name = models.CharField(max_length=255)
is_active = models.BooleanField(default=True)
is_staff = models.BooleanField(default=False)
objects = UserMananger()
USERNAME_FIELD = 'email'
class WatchlistManager(models.Manager):
"""manage creating watchlists"""
def create_watchlist(self, user):
watchlist = self.create(user=user)
watchlist.save()
return watchlist
class Watchlist(models.Model):
"""Watchlist model"""
watchlist_id = models.AutoField(primary_key=True)
user = models.ForeignKey(settings.AUTH_USER_MODEL,
on_delete=models.CASCADE)
products = models.ManyToManyField('Product')
def __str__(self):
return f'{self.watchlist_id} {self.user}'
【问题讨论】:
标签: django