Как отобразить все картинки профиля пользователя в шаблоне - PullRequest
0 голосов
/ 25 февраля 2020

Мне удалось добавить поле изображения в профиле, а также я создал пользователей и прикрепил изображение ко всем своим профилям пользователей. Теперь, как мне отобразить все картинки профиля пользователя в шаблоне. Я пытаюсь это: profile_img = Profile.objects.filter (user = request.user.id), но он отображает текущее изображение профиля пользователя во всех профилях пользователей. Я хочу отобразить все изображения профиля для каждого пользователя в шаблоне.

class Profile(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL,on_delete=models.CASCADE, null=True, blank=True)
    profile_pic = models.ImageField(upload_to='ProfilePicture/', blank=True)

def home(request):
    profile_img = Profile.objects.filter(user=request.user.id) 
    print(profile_img)
    users = User.objects.exclude(id=request.user.id)

{% for user in users %}
<div class="row mb-2">
    {% for profile in profile_img %}
    {% if profile.profile_pic %}
      <a href="{% url 'site:profile' user.username %}">  
      <img src="{{ profile.profile_pic.url }}" class="rounded-circle avatar-img z-depth-1-half mb-3 mt-1" height="55" width="55" style="border:none;padding:0px;">
      </a>
    {% endif %}
    {% endfor %}
    </div>
    {% endfor %}

Ответы [ 2 ]

0 голосов
/ 25 февраля 2020

def home(request): profile_img = Profile.objects.exclude(id=request.user.id) print(profile_img)

<div class="row mb-2">
{% for profile in profile_img %}
{% if profile.profile_pic %}
  <a href="{% url 'site:profile' user.username %}">  
  <img src="{{ profile.profile_pic.url }}" class="rounded-circle avatar-img z-depth-1-half mb-3 mt-1" height="55" width="55" style="border:none;padding:0px;">
  </a>
{% endif %}
{% endfor %}
</div>

Я думаю, что нет необходимости добавлять для пользователя l oop, поскольку вы исключаете текущего пользователя и сохраняете два других объекта в переменной с именем users , так что он будет l oop дважды и снова напечатает одно и то же, избегайте этого для l oop пользователей. Вы должны получить изображения только один раз

0 голосов
/ 25 февраля 2020

Я думаю, что в представлениях вы фильтруете его по request.user.id (Это похоже на то, что вы хотите отправить только профиль пользователя pi c на основе идентификатора пользователя). вместо этого попробуйте Profile.objects.all(). (Это отправит все изображения профилей в нем)

Если вы хотите сделать это по порядку, используйте Profile.objects.all().order_by('-id'). Это упорядочит его по идентификатору пользователя.

хотите исключить изображение текущего пользователя, используйте для отображения всех изображений

Profile.objects.exclude(id=request.user.id)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...