2016-07-31 2 views
0

스레드을 포함하는 게시판을 만들었습니다. 각 스레드는 하나의 이미지를 포함하고 스레드는 포스트로 확장 될 수 있습니다. 그것은 4chan 같아.Django의 파일 업로드 (작동하지 않음)

모델이 데이터베이스에 저장되지 않았습니다. 나는 이것을 answer에 따라 파일 업로드 예제를 만들었습니다.

포럼 앱에는 간단한 파일 업로드 예제가 포함되어 있으며 업로드 개체가 여기에 저장됩니다.

코드베이스 (github)

프로젝트 트리

bookstore/ 
    chan/ 
    templates/chan/index.html 
    forms.py 
    admin.py 
    views.py 
    urls.py 
    forum/ 
    ... 
    bookstore/ 
    settings.py 
    urls.py 

설정

. 
. 
. 
MEDIA_URL = '/media/' 

MEDIA_ROOT = os.path.join(BASE_DIR, 'media') 

Urls.py

from django.conf.urls import url, include 

from . import views 

urlpatterns = [ 
    url(r'^$', views.index, name='index'), 
    url(r'^create_post/(?P<thread_id>[0-9]+)/$', views.create_post, name='create_post'), 
    url(r'^create_thread/$', views.create_thread, name='create_thread'), 
] 

조회수

from django.shortcuts import render, redirect 

from . import models 
from . import forms 

def index(request): 
    threads = models.Thread.objects.all() 
    thread_form = forms.Thread() 
    post_form = forms.Post() 

    return render(request, 'chan/index.html',{ 
     'threads':threads, 
     'thread_form':thread_form, 
     'post_form':post_form, 
    }) 

def create_post(request, thread_id): 
    form = forms.Post(request.POST, request.FILES) 
    if form.is_valid(): 
     post = Post(
      text=request.POST['text'], 
      document=request.FILES['document'], 
      thread=models.Thread.get(pk=thread_id), 
     ) 
     post.save() 
    return redirect('chan:index') 

def create_thread(request): 
    form = forms.Thread(request.POST, request.FILES) 
    if form.is_valid(): 
     thread = Thread(
      text=request.POST['text'], 
      document=request.FILES['document'] 
     ) 
     thread.save() 
    return redirect('chan:index') 

나는 지금 내가보고 싶었어요 수도 아무것도 확인 시간이에있었습니다.

답변

1

솔직히 나는 무엇을하려고하는지 잘 모릅니다. 하지만 그 레포를 들여다 보면 그 구멍이 엉망이되었습니다. 나는 당신을 위해 몇 가지 질문 ...

  1. __init__.py이없는가? 장소 초기화 평 파일 from module import something

  2. 와 모듈을 호출 왜 action 속성을 가지고 있지 않습니다

    모범 사례 (구멍의 repo가 ​​좋지 않아이 없음)?

    당신은 url={% ...}이 있지만

+0

action={%...}은 어떻게 든 내가 gitignore에서 그 __init__ 남아 있어야합니다. –

+0

이것은 완전히 어리석은 실수입니다. 나는 그 URL을 또 다른 사소한 변화로 액션에 고정 시켰고 효과가 있었다. –

+0

내가 어떻게 간과하는지 알 수 없다. –

관련 문제