【发布时间】:2019-11-16 18:48:04
【问题描述】:
我想在视图中创建一个自定义对象列表并将其传递给模板。在模板中,我想遍历列表并显示信息。
我的模特是
class CustomUser(AbstractUser):
def __str__(self):
return self.email
class Post(models.Model):
author = models.ForeignKey(CustomUser,on_delete=models.CASCADE,)
text = models.TextField()
created_date = models.DateTimeField(default=timezone.now)
published_date = models.DateTimeField(blank=True, null=True)
post_url = models.URLField(max_length = 200, blank = True)
slug = models.SlugField(unique=True, blank=True)
class subscription(models.Model):
creator = models.ForeignKey(CustomUser,default=None, null=True,on_delete=models.CASCADE,related_name='creator',)
booster = models.ForeignKey(CustomUser,default=None, null=True,on_delete=models.CASCADE,related_name='booster')
sub_value = models.FloatField(blank = True)
sub_id = models.TextField(blank = True)
status = models.BooleanField(default=False)
dateSubscribed = models.DateTimeField(default=timezone.now)
dateSubscriptionEnded = models.DateTimeField(default=timezone.now)
paymentCount = models.FloatField(default= 0)
我想从订阅模型中过滤对象,如下所示
subs = subscription.objects.filter(booster = request.user)
然后在上述 subs 对象列表中找到创建者,并为每个创建者获取名称、帖子数量和订阅者数量。将此添加到自定义列表并将其传递给模板以循环并显示模板中的信息。有人可以帮我如何创建这个自定义列表。谢谢!
【问题讨论】:
-
如果你有
CustomUser实例,你可以使用反向关系,因为你的关联名称是:request.user.creator.all(),我建议使用更相关的关联名称,例如creator = ...... related_name='created_subscriptions' -
模型中的订阅者信息在哪里?什么是创作者,什么是助推器,它如何与 Post 模型联系起来
标签: django django-templates django-views