class User(auth.models.User,auth.models.PermissionsMixin):
def __str__(self):
return '@{}'.format(self.username)
class placement(models.Model):
name=models.CharField(max_length=150, blank=True, null=True)
ad_space=models.CharField(max_length=100, blank=False, null=False)
PID_TYPE = (
('FN','FORMAT_NATIVE'),
('FNB','FORMAT_NATIVE_BANNER'),
('FI','FORMAT_INTERSTITIAL'),
('FB','FORMAT_BANNER'),
('FMR','FORMAT_MEDIUM,RECT'),
('FRV','FORMAT_REWARDED_VIDEO'),
)
format = models.CharField(max_length=3,choices = PID_TYPE,default = 'FN',blank=False, null=False)
pid=models.CharField( max_length=50,default='',blank=False, null=False)
cpm=models.IntegerField(default=0,blank=False, null=False)
ADS_TYPE=(
('FB','FACEBOOK'),
('G','GOOGLE'),
)
source=models.CharField(max_length=2,choices=ADS_TYPE,default='FB',blank=False, null=False)
comments=models.TextField(default='',blank=False, null=False)
objects=models.Manager()
def __str__(self):
return self.name
def get_absolute_url(self):
return reverse("dashapp:disp")`
现在我该怎么做才能只将登录的用户内容显示在模板上。目前,所有已存储的数据都将被提取。该注销用户正在显示数据。 我基本上是一个初学者,所以我对此没有任何高级想法。 需要完整的解释。
答案 0 :(得分:0)
您可以像这样访问登录用户:
{% if user.is_authenticated %}
<p>Welcome, {{ user.username }}. Thanks for logging in.</p>
{% else %}
<p>Welcome, new user. Please log in.</p>
{% endif %}
在django中,登录的用户具有属性is_authenticated
,它是一个布尔值。如果用户已登录,则会显示True
,否则显示False
。
如果您想在当前用户的模板中查看placement
模型值,则需要与该用户建立placement
的一些联系。因此,您需要更新展示位置模型:
class placement(models.Model):
user = models.ForeignKey(User, null=True, default=None)
.... # rest of the fields
并将用户信息保存到视图中的位置:
class SomeCreateView(CreateView):
...
def form_valid(self, form):
form.instance.user = User.objects.get(id = self.request.user.id)
return super(SomeCreateView, self).form_valid(form)
并在这样的视图中获取用户的位置:
placements = placement.objects.filter(user=request.user)