리액트-장고 채팅방 만들기6
사진 인식은 하는데 업로드하면 파일 저장이 안되서 봤더니 html태그 하나를 빠뜨린거였다.
enctype="multipart/form-data"
'method' object is not subscriptable 에러가 나길래 검색해봤는데,
request.POST.get['내용'] 을 해서 그런거였다. request.POST.get('내용') 으로 바꿨다.
링크
그리고 media 폴더에 있는 사진들을 자꾸 못불러와서 계속 골때렸는데, config폴더에 있는 urls.py에다가 `
+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
해야될거를 accounts폴더의 urls.py에다가 해서 그런거였다.
확실히 저번주에는 에러가 왜뜨는지 감도못잡았는데 삽질을 많이하다보니까 어느정도 이해가 가기 시작한다.
하루하루 발전해나가는 내 모습이 맘에든다.
현재 프로필 문제점:
다른 사람 프로필에 들어가면 nav bar 이름이 프로필의 계정이름으로 바뀌고 프로필 편집 버튼이 뜸 → 프로필 편집 누르면 내 프로필 편집창으로 감
1. views.py에서 프로필유저정보만 넘겨서 생긴 일이였다. 접속한사람 정보도 넘겨줬다.
views.py
def ProfileView(request, username): # urls.py에서 넘겨준 인자를 username으로 받는다.
if request.user.username == username:
if not Profile.objects.filter(user=request.user):
Profile.objects.create(user = request.user)
person = get_object_or_404(get_user_model(), username=username)
context = {'person':person, 'me': request.user}
return render(request, 'accounts/profile.html', context)
profile.html
{% extends 'base.html' %}
{% block content %}
{% load static %}
<div class="row">
<div class="col-xs-6 col-md-3">
{% if person.profile.profile_photo %}
<img class="round" src="{{user.profile.profile_photo.url}}" width="200"> <br>
{% else %}
<img class="round" src="{% static 'accounts/images/profile1.jpg' %}" width="200"> <br>
{% endif %}
</div>
<div class="col-xs-6 col-md-3">
{% if person.profile.nickname %}
<h2>{{person.username}}</h2>
{% endif %}
{% if person == me %} <!-- 로그인한 사용자와 profile_user(프로필 소유자)가 일치할 때만 프로필 편집이 가능하도록 함 -->
<a href="{% url 'accounts:profile_update' %}">
<button type="button" class="btn btn-default">프로필 편집</button></a></h2>
{% endif %}
<h3> 이름: {{person.profile.nickname}} <br></h3>
<h3> 자기소개: {{person.profile.description}}</h3>
<!-- <h3>{{profile.profile.profile_photo}} </h3>-->
<!-- <img class="round" src="{{profile.profile.profile_photo.url}}" width="200"> <br>-->
</div>
</div>
{% endblock %}
{% block script %}
<link rel="stylesheet" href="{% static 'accounts/style.css' %}">
{% endblock %}
- navbar에서는 기본적으로 user.username이 뜨게 되어있는데, views.py에서 프로필유저의 변수명을 user라고 써서 navbar에 혼선을 줬다. 그래서 person으로 바꿨다.
Author And Source
이 문제에 관하여(리액트-장고 채팅방 만들기6), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@chss3339/리액트-장고-채팅방-만들기6저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)