前提・実現したいこと
初心者、初質問です。
DjangoでManyToManyFieldを利用したフォロー機能を作成しています。
フォロー機能自体は作り稼働を確認したものの、
テンプレートにフォロワーとフォロー中のユーザー一覧をうまく表示できません。
該当のソースコード
accounts/models.py
class User(AbstractBaseUser, PermissionsMixin): """ AbstractUserの一部を変更 https://github.com/django/django/blob/master/django/contrib/auth/models.py """ username_validator = UnicodeUsernameValidator() username = models.CharField( _('username'), max_length=20, unique=True, #@、.、+、-も使用できる。今後@をユーザー返信などで使うなら改造必須。 help_text=_('【入力必須】20文字以下。英数字のみ。'), validators=[username_validator], error_messages={ 'unique': _("このユーザーネームはすでに登録されています。"), }, ) ...省略 followers = models.ManyToManyField('self', blank=True,symmetrical=False ) ...省略
post/urls
from django.urls import path from . import views app_name = 'post' urlpatterns = [ path('', views.index, name='index'), path('<username>/',views.user_profile,name='user_profile'), ]
post/views.py
def user_profile(request, username): profile_user = User.objects.get(username=username) #フォロー中 profile_followees = profile_user.followers.all() profile_followees_count = profile_followees.count() #フォローワ― profile_followers = User.objects.filter(followers=profile_user) profile_followers_count = profile_followers.count() return TemplateResponse(request, 'post/user_profile.html', {'profile_user': profile_user, 'user_haikus': user_haikus, 'profile_followees': profile_followees, 'profile_followees_count': profile_followees_count, 'profile_followers': profile_followers, 'profile_followers_count': profile_followers_count, })
template/user_profile.html
{% extends 'base.html' %} {% block body %} <h2>{{ profile_user.username }}</h2> <p>{{ profile_followees_count }}人をフォロー中</p> <!-- フォロー中リスト--> {% for followee in profile_user.profile_followees.all %} <p>{{ followee }}</p> {% endfor %} <p>{{ profile_followers_count }}人がフォロワー</p> <!-- フォローワーリスト--> {% for follower in profile_user.profile_followers.all %} <p>{{ follower }}</p> {% endfor %} {% for user_haiku in user_haikus %} <ul> <li>{{ user_haiku.haiku }}</li> </ul> {% endfor %} {% endblock %}
フォロー中とフォロワーの人数は表示できましたが、
フォロー中とフォロワーのユーザー名を取得したいです。
フォロー中のユーザー名はprofile_user.followers.allで取得できることを確認していますが、
できればviews.pyを使って取りたいです。
具体的にどのようにすれば解決できるできるでしょうか。
どなたか教えて頂ければ嬉しいです。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー