【发布时间】:2021-11-13 04:43:51
【问题描述】:
我成功地将django-contrib-comments 应用到我的项目中,并开始逐步调整它,使其100% 适合我的项目。现在我有以下我无法解决的问题:
我有一个模型Poller,它为存储在模型Vote 中的任何用户提供两个可能的投票。现在,如果用户对轮询器进行了投票,我想将他对该特定轮询器的个人投票返回给模板中呈现的评论。
由于我不想以任何方式触及第 3 方的架构,我更愿意在我看来获得所需的查询集。
django-contrib-cmets 包的注释模型
class CommentAbstractModel(BaseCommentAbstractModel):
user = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name=_('user'),
[..]
我的投票者、投票和帐户/用户模型
class Poller(models.Model):
poller_id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
created_on = models.DateTimeField(auto_now_add=True)
created_by = models.ForeignKey(Account, on_delete=models.CASCADE)
[..]
class Vote(models.Model):
poller = models.ForeignKey(Poller, on_delete=models.CASCADE, related_name='vote')
user = models.ForeignKey(Account, on_delete=models.CASCADE)
created_on = models.DateTimeField(auto_now_add=True)
poller_choice_one_vote = models.BooleanField(default=False)
poller_choice_two_vote = models.BooleanField(default=False)
[..]
class Account(AbstractBaseUser):
username = models.CharField(max_length=40, unique=True)
[..]
长话短说,我如何访问每个发表评论的用户的投票模型以确定他选择了哪一票?也许通过继承CommentAbstractModel 并向Vote 模型添加外键?
@require_GET
def single_poller(request, poller_id):
"""
renders a specific poller with prepopulated meta according to previous
user interaction, e.g. votes and likes
"""
# Retrieve the item via get
poller = Poller.objects.get(poller_id=poller_id)
[..] # how to go on here?
【问题讨论】:
标签: python django django-models django-queryset django-generic-relations