2 回答

TA貢獻1865條經驗 獲得超7個贊
您必須添加upload_to:
item_image = models.ImageField(
blank = True,
null = True,
upload_to = 'item/image/',
db_column = 'ITEM_IMAGE',
verbose_name = 'IMAGE',
)
請記住為媒體文件分配路徑:(在 settings.py 上)
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
在 forms.py 中:
item_image = forms.ImageField(
required = False,
label = 'Image',
widget = forms.ClearableFileInput(
attrs = {'class': 'form-control mb-2', 'placeholder':
'IMAGE',}
),
)
這是我的 github 和一個 django 項目來指導你:

TA貢獻1946條經驗 獲得超4個贊
您需要添加enctype="multipart/form-data"到您的 html 表單:
<form action="{% url 'blog:add_post' %}" method='post' enctype="multipart/form-data">
{% csrf_token %}
{{form.as_p}}
<input type='submit'>
</form>
并傳遞request.FILES給您的表格:
def add_post(request):
if request.method == 'POST':
form = PostForm(request.POST, request.FILES)
if form.is_valid():
form.save()
return redirect("/")
else:
form=PostForm()
context = {'form':form}
return render(request,'blog/add_post.html',context)
添加回答
舉報