使用模板标签时 Django 图像不显示在 Django 中
Django Image not showing up in django when using template tags
当我尝试调用这样的图像时 {{ profile.image.url }}
它在个人资料页面中有效,但在主页中 {{ post.user.profile.image.url }}
没有任何显示,这不是我所期望的。我也试过检查图像 url 是否工作,是的,它正在工作。
注意:它在配置文件页面中按预期工作正常,但在 index.html 中似乎没有显示任何内容。
index.html
{% for post in post_items %}
<a href="{{post.user.profile.image.url}}" class="post__avatar">
<img src="{{post.user.profile.image.url}}" alt="User Picture">
</a>
<a href=""{{ post.user.username }}</a>
models.py
class Profile(models.Model):
user = models.ForeignKey(User, related_name='profile', on_delete=models.CASCADE)
image = models.ImageField(upload_to="profile_pciture", null=True)
def save(self, *args, **kwargs):
super().save(*args, **kwargs)
def __str__(self):
return f'{self.user.username} - Profile'
def save(self, *args, **kwargs):
super().save(*args, **kwargs)
您定义 Profile
模型的方式导致 one-to-many 与 User
的关系,因此向后遵循关系的字段类似于 post.user.profile_set.objects.all().first().image
.
既然你想要一个 one-to-one 关系,Profile
模型应该是:
class Profile(models.Model):
user = models.OneToOneField(User, related_name='profile', on_delete=models.CASCADE)
image = models.ImageField(upload_to="profile_pciture", null=True)
有了这个,您应该能够向后跟踪 post.user.profile.image
的关系。
您可以在此处找到相关的 docs。
当我尝试调用这样的图像时 {{ profile.image.url }}
它在个人资料页面中有效,但在主页中 {{ post.user.profile.image.url }}
没有任何显示,这不是我所期望的。我也试过检查图像 url 是否工作,是的,它正在工作。
注意:它在配置文件页面中按预期工作正常,但在 index.html 中似乎没有显示任何内容。
index.html
{% for post in post_items %}
<a href="{{post.user.profile.image.url}}" class="post__avatar">
<img src="{{post.user.profile.image.url}}" alt="User Picture">
</a>
<a href=""{{ post.user.username }}</a>
models.py
class Profile(models.Model):
user = models.ForeignKey(User, related_name='profile', on_delete=models.CASCADE)
image = models.ImageField(upload_to="profile_pciture", null=True)
def save(self, *args, **kwargs):
super().save(*args, **kwargs)
def __str__(self):
return f'{self.user.username} - Profile'
def save(self, *args, **kwargs):
super().save(*args, **kwargs)
您定义 Profile
模型的方式导致 one-to-many 与 User
的关系,因此向后遵循关系的字段类似于 post.user.profile_set.objects.all().first().image
.
既然你想要一个 one-to-one 关系,Profile
模型应该是:
class Profile(models.Model):
user = models.OneToOneField(User, related_name='profile', on_delete=models.CASCADE)
image = models.ImageField(upload_to="profile_pciture", null=True)
有了这个,您应该能够向后跟踪 post.user.profile.image
的关系。
您可以在此处找到相关的 docs。