你好Djangonauts, 今天大家好吗,我是Django新手,所以请原谅逻辑或代码中的任何愚蠢错误。我有一个用户,一个用户配置文件和一个posts模型。我想给用户徽章的数量张贴用户的帖子。例如,如果用户发布3个帖子,他/她将获得一个初学者徽章等。。。在
下面是我的用户档案模型.py
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
profile_image = models.ImageField(default='', blank=True, null=True)
badge_image = models.ImageField(default='', blank=True, null=True)#maybe default can be "static/images/beginner_image.jpg" but it does not work
帖子模型.py
^{pr2}$现在我想实现这样的目标:
user = User.objects.get(username=request.user.username)
if user.posts.count >= 3 :
badge_image = '<img src="some image">'# I don't know how to make a image variable in views and models. I know how to use it in Django templates with {{image.url}}
elif user.posts.count >= 20 :
badge_image = '<img src="some image">'
else:
badge_image ='<img src="beginner_image">'
在模型和视图中,我应该在哪里编写这些代码?如果我的问题太基本了,我很抱歉。我所学的项目都没有类似的情况
您可以不使用
ImageField
。为此,请使用模型的@property
。您需要使用静态文件(check docshow to manage static with Django)将徽章图像(例如badge_img1.jpg
、badge_img2.jpg
)复制到director。重写Profile
如下:您可以这样显示当前用户的图像:
^{pr2}$相关问题 更多 >
编程相关推荐