Django의 관심 시스템
데이터베이스에서 인용된 다대다 관계에 주목한다. Django에서 다대다는 ManyToManyField를 사용할 수 있지만 다대다 관계는 관심 시간과 같은 추가 정보를 전달할 수 없다.따라서 두 User를 연결하는 연관 테이블을 만들고 테이블에 추가 정보를 추가할 수 있습니다.
class Follow(models.Model):
follower = models.ForeignKey(User, related_name='follower', on_delete=models.CASCADE)
#on_delete Django2
followed = models.ForeignKey(User, related_name='followed', on_delete=models.CASCADE)
date = models.DateTimeField(auto_now_add=True)
class Meta:
ordering = ('-date',)
def __str__(self):
return f'{self.follower} follow {self.followed}'
이렇게 하면 주목 모델이 완성되고 아래에 몇 가지 정적 방법을 추가한다.
@staticmethod
def follow(from_user, to_user):
Follow(follower=from_user,
followed=to_user).save() #
@staticmethod
def unfollow(from_user, to_user):
f = Follow.objects.filter(follower=from_user, followed=to_user).all()
if f:
f.delete() #
@staticmethod
def user_followed(from_user):
followeders = Follow.objects.filter(follower=from_user).all()
user_followed = []
for followeder in followeders:
user_followed.append(followeder.followed)
return user_followed # from_user ,
views에서.py에서 호출, 예를 들어 첫 페이지에서 현재 사용자가 주목하는 사람의 동태를 얻는다. 이것은 연결 검색, Django의 연결 검색과 관련된다. 나는 실현하기 어렵다. 다행히질의
def followed(request):
user = request.user
all_feeds = Feed.get_feeds().filter(user__in=Follow.user_followed(user))
#user__in
paginator = Paginator(all_feeds, FEEDS_NUM_PATES)
feeds = paginator.page(1)
from_feed = -1
if feeds:
from_feed = feeds[0].id
return render(request, 'feeds/followed_feeds.html', {
'feeds': feeds,
'from_feed': from_feed,
'page': 1,
})
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.