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')
나는 지금 내가보고 싶었어요 수도 아무것도 확인 시간이에있었습니다.
action={%...}
은 어떻게 든 내가 gitignore에서 그 __init__ 남아 있어야합니다. –이것은 완전히 어리석은 실수입니다. 나는 그 URL을 또 다른 사소한 변화로 액션에 고정 시켰고 효과가 있었다. –
내가 어떻게 간과하는지 알 수 없다. –