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')
我一直在這幾個小時,現在檢查什麼,我可能已經錯過了。
不知怎的,我離開了那__init__下gitignore。 –
這完全是一個愚蠢的錯誤。我修復了這個URL,以便進行另一次小改動,並且工作正常。 –
看不到我是如何忽略這一點的。 –