리액트-장고 채팅방 만들기6

11448 단어 djangodjango


템플릿 참고

사진 인식은 하는데 업로드하면 파일 저장이 안되서 봤더니 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 %}
  1. navbar에서는 기본적으로 user.username이 뜨게 되어있는데, views.py에서 프로필유저의 변수명을 user라고 써서 navbar에 혼선을 줬다. 그래서 person으로 바꿨다.

좋은 웹페이지 즐겨찾기