FrameWork/Django
8월 10일(수) 검색필터 Q
print(blue)
2022. 8. 10. 17:45
☝🏻 Foreignkey로 연결한 db 필드에서 검색하기
1. 디비 구조
#core/models.py
# 유저 필드 함수
class User(AbstractUser):
username = models.CharField(max_length=10, blank=False, null=False, unique=True, verbose_name="회원아이디") # 아이디
nickname = models.CharField(max_length=10, blank=False, null=False, unique=True, verbose_name="닉네임")# 닉네임
name = models.CharField(max_length=10, blank=False, null=False, verbose_name="회원이름") #이름
bio = models.TextField(verbose_name='자기소개') # 바이오
# like_room = models.ManyToManyField('Room', blank=True, related_name='관심 목록') # 관심 목록
# join_room = models.ManyToManyField('Room', blank=True, related_name='가입 목록') # 가입 목록
create_at = models.DateTimeField(verbose_name='date joined', auto_now_add=True) # 가입한 날짜
last_login = models.DateTimeField(verbose_name='last login',auto_now=True) # 마지막 로그인
#room/models.py
class Room(models.Model):
title = models.CharField(max_length=50, verbose_name="제목") #제목
sub_title = models.CharField(max_length=100, blank=True, verbose_name="부제목") #부제목
content = models.TextField(verbose_name="내용") #콘텐츠
create = models.DateTimeField(verbose_name='작성일', auto_now_add=True) #작성일
room_owner = models.ForeignKey(User, null=True, blank=True, on_delete=models.CASCADE, verbose_name="방장") #방장
room_password = models.CharField(max_length=5, default=None, verbose_name="방비밀번호") #방비밀번호
User 의 username , Room의 room_owner
기존 방법 : Q(필드 이름__icontains=q)
해결 방법 : Q(필드 이름__왜래키필드이름__icontains=q)
django foreignkey model 검색기능 ( icontains )
문제 상황: ForeignKey로 연결한 db 필드에서 검색을 하고 싶다.db구조는 이렇다. Accessor의 name 필드를 Nac의 user에 넣도록 되어있다.그리고 홈페이지에서는 Nac 기록들이 나오며, 이 기록들에 대하여
velog.io