【发布时间】:2017-02-08 13:19:04
【问题描述】:
我目前正在使用 Python 3 上的 Django 开发一个站点。该站点允许用户关注他们喜欢的项目,并且只要这些项目存在,他们就可以关注任意数量的项目。这是我的网站模型。
这是我的团队模型,这是您可以关注的所有项目的模型
class Team(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='team')
created_at = models.DateTimeField(auto_now_add=True)
modified_at = models.DateTimeField(auto_now=True)
title = models.CharField(max_length=255)
description = models.TextField()
image = models.ImageField(upload_to='images/team_images', blank=True)
roster = models.TextField(blank=True, default='')
current_raise = models.IntegerField(blank=True, default=0)
# current_backers = models.IntegerField(blank=True, default=0)
time_left = models.DateTimeField(blank=True, default=timezone.now)
raising_minimum = models.PositiveIntegerField(blank=False)
raising_maximum = models.PositiveIntegerField(blank=False)
duration = models.DateTimeField(blank=False)
def __str__(self):
return self.title
这是用户配置文件模式,我在这个模型中有一个多对多字段。
class UserProfile(models.Model):
user = models.OneToOneField('accounts.User')
following = models.ManyToManyField(Team, related_name='user_following', blank=True)
def __str__(self):
return self.user.first_name
def save(self, *args, **kwargs):
if self.pk:
for team in self.following:
team.save()
super(UserProfile, self).save(*args, **kwargs)
问题是,当我检查数据库时,我为测试创建的所有团队都在字段following 即使用户还没有请求关注他们。
我创建的所有团队都显示在管理页面的“关注”下。 enter image description here
【问题讨论】:
-
你的意思是所有的团队都出现在后台的下拉菜单中可供选择?
-
你的意思是“他们在以下领域”? m2m 应该在 UserProfile 和 Team 之间创建单独的表。
-
@schwobaseggl 嗨,我编辑了我的帖子,我添加了我的管理页面的截图,在下面,我创建了三个团队,他们不应该在那里,因为用户没有' t 跟着他们。
-
@AlexanderTyapkov 嗨,我之前创建的团队出现在以下领域。他们不应该在那里,因为用户还没有关注他们。
-
@RobertLi 他们只是显示了用户可以选择的可能值!如果您单击其中任何一个,则它将突出显示=已选中。应该是这样的。