참고 사이트
보고 배운 곳
https://wayhome25.github.io/django/2017/06/22/custom-template-filter/
오늘 사용한 App
myApp
사용한 명령어
python manage.py makemigrations
python manage.py migrate
포인트
지금까지 배운 걸 활용하여
Tag2를 새로 생성하였다.
이곳은 Tag에 생성된 태그와 똑같이 저장된다.
그리고 Tag를 통해 search에 들어가면
if tag일 때 Tag2를 검색하는 multi-search input을 보여준다.
multi-search를 통해 검색을 하면 Tag에서 검색한 내용에 +로 Tag2의 내용을 검색해
해시태그 이중 검색을 완성해 보았다.
완성된 git ( 2020.06.18 키 노출로 인한 git 비공개 )
https://github.com/integerJI/int_1
aws key 노출되다.
https://integer-ji.tistory.com/200
aws key 생성시 주의 할점
https://integer-ji.tistory.com/208
▶▶ 완성 했다면 실제 서버에 배포하기 ◀◀
https://integer-ji.tistory.com/11
https://integer-ji.tistory.com/12
https://integer-ji.tistory.com/13
사용한 디렉터리 계층구조 및 파일
myApp
# myProject/myApp/models.py
class Post(models.Model):
# ... 생략
tag_set_2 = models.ManyToManyField('Tag_2', blank=True)
def tag_save_2(self):
tags_2 = re.findall(r'#(\w+)\b', self.main_text)
if not tags_2:
return
for t_2 in tags_2:
tag_2, tag_created_2 = Tag_2.objects.get_or_create(tag_name_2=t_2)
self.tag_set_2.add(tag_2)
class Tag_2(models.Model):
tag_name_2 = models.CharField(max_length=140, unique=True)
def __str__(self):
return self.tag_name_2
# myProject/myApp/admin.py
from django.contrib import admin
from .models import Post, Comment, Tag, Tag_2
# Register your models here.
admin.site.register(Post)
admin.site.register(Comment)
admin.site.register(Tag)
admin.site.register(Tag_2)
<!--myApp/templates/search.html-->
# ... 생략
<aside class="col-md-3 blog-sidebar">
<div class="card mb-3 bg-light rounded" style="max-width: 540px;" bg-light rounded>
<div class="row no-gutters">
<a></a>
<div class="col-md-5 d-flex align-items-center d-flex justify-content-center">
<img src="{{ pic_url }}" alt="..." class="rounded-circle" width="60" height="60">
</div>
<div class="col-md-6">
<div class="card-body">
<a><span id="user_name">{{user.username}}</span></a>
<br>
<a href="{% url 'mypage' %}">My Profile</a>
<br>
<a href="{% url 'post' %}">New Post</a>
</div>
</div>
</div>
</div>
# ... new
{% if tag %}
<form action="" method="post">
{% csrf_token %}
<input class="form-control" type="search" placeholder="Search" aria-label="Search" name="y">
</form>
{% endif %}
{% if messages %}
<div class="alert alert-warning alert-dismissible fade show" role="alert">
{% for message in messages %}
<strong>{{ message.message }}</strong>
{% endfor %}
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
{% endif %}
<div class="p-3">
<h4 class="font-italic">Producer</h4>
<ol class="list-unstyled">
<li><a href="https://github.com/integerJI">GitHub</a></li>
<li><a href="https://www.instagram.com/integer_ji/">Instagram</a></li>
</ol>
<footer class="my-2 pt-2 text-muted text-center text-small">
<p class="mb-1">© 2019-2020 Integer Ji</p>
</footer>
</div>
</aside>
# ... 생략
마무리
'코딩공부 > 홈페이지 만들기' 카테고리의 다른 글
Django로 홈페이지 만들기 - #9 hashtag, serach (2) | 2020.05.04 |
---|---|
Django로 홈페이지 만들기 - #8 좋아요, like (4) | 2020.05.04 |
Django로 홈페이지 만들기 - #7 mypage, userpage, profile update (0) | 2020.05.04 |
Django로 홈페이지 만들기 - #6 댓글 쓰기, 댓글 삭제 (0) | 2020.05.04 |
Django로 홈페이지 만들기 - #5 글 수정, 글 삭제 (0) | 2020.05.04 |