>source

이미지를 추가하면 이미지의 URL이 완전히 표시되지만 업데이트 할 때는 과거의 반값입니다.

이것은 내 models.py 입니다.

from django.db import models
# Create your models here.
class ImageUpload(models.Model):
    get_image= models.FileField(upload_to='gallery/new/',null=True)

이것은 나의 것입니다Views.py

from django.shortcuts import render,redirect
from upload.models import ImageUpload
# Create your views here.
def add_image(request):
    if request.method== "POST":
        image= request.FILES['myimage']
        save_image= ImageUpload(get_image=image)
        save_image.save()
        return redirect('/')
    else:
        image_data= ImageUpload.objects.all()
        return render(request,'add_image.html',{'image_data':image_data})
def update_image(request, id):
    if request.method== "POST":
        image= request.FILES['myimage']
        save_image= ImageUpload.objects.filter(id=id).update(get_image=image)
        return redirect('/')
    else:
        image_data= ImageUpload.objects.filter(id=id)
        return render(request,'update_image.html',{'image_data':image_data})

이것은 내 urls.py 입니다.

from django.urls import path
from upload.views import add_image, update_image
app_name= 'upload'
urlpatterns= [
    path('', add_image, name="add_image"),
    path('update_image/<id>/', update_image, name="update_image"),
]

이것은 내 정적 미디어 구성입니다.

STATIC_URL= '/static/'
STATICFILES_DIRS= [
    BASE_DIR /"static",
]
STATIC_ROOT= BASE_DIR.parent /"static_cdn"
MEDIA_URL= '/media/'
MEDIA_ROOT=  BASE_DIR /"media"

이것은 내 프로젝트 urls.py 입니다.

from django.contrib import admin
from django.urls import path,include
from django.conf import settings
from django.conf.urls.static import static
urlpatterns= [
    path('admin/', admin.site.urls),
    path('', include('upload.urls')),
]
if settings.DEBUG:
    urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

이것은 내 add_image.html 입니다.

      <form action="{% url 'upload:add_image' %}" method="POST" class="col-md-8 offset-md-2 mb-5" enctype="multipart/form-data">{% csrf_token %}
        <div class="input-group col-md-6 mb-3">          <input type="file" class="form-control" name="myimage" id="inputGroupFile01" required>        </div>        <button type="submit" class="btn btn-primary">Submit</button>      </form>      <!--form -->      {% if image_data %}
<h2 class="bg-warning text-white p-3 mb-5">All Images</h2>{% for i in image_data %}
      <div class="col-md-8 offset-md-2 my-4">        <label class="input-group-text" for="inputGroupFile01">{{ i.get_image }}</label> <a href="{% url 'upload:update_image' i.id %}" class="btn btn-primary btn-sm float-right">Update</a><a href="{{ i.get_image.url }}" class="btn btn-success my-1 mx-3 btn-sm float-right" target="_blank">View</a>      </div>{% endfor %}
      {% endif %}

이것은 내 update_image.html 입니다.

<!--form -->      {% for i in image_data %}
      <form action="{% url 'upload:update_image' i.id %}" method="post" enctype="multipart/form-data">{% csrf_token %}
        <div class="input-group col-md-6 mb-3">          <label class="input-group-text" for="inputGroupFile01">Upload</label>          <input type="file" class="form-control" name="myimage" id="inputGroupFile01" required>        </div>        <button type="submit" class="btn btn-primary">Submit</button>      </form>      {% endfor %}
      <!--form -->

추가 할 때 이미지의 URL은 다음과 같습니다.http://127.0.0.1:8000/media/gallery/new/img_2.jpg

그러나 이미지를 업데이트 할 때 URL이 변경 사항을 변경합니다.http://127.0.0.1:8000/media/comming_soon.jpg

이미지 업로드 인스턴스를 업데이트 할 수 있었습니까? get_image가 업데이트 되었습니까?

ha-neul2021-08-04 23:21:55

이미지가 업데이트되지 않습니다

Ankit Tiwari2021-08-04 23:21:55

URL을 업데이트 한 후 데이터베이스에 저장되지만 파일이 특정 위치에서 업로드되지 않습니다.

Ankit Tiwari2021-08-04 23:21:55

이 URL은 데이터베이스 127.0.0.1:8000/media/comming_soon.jpg에 저장되지만 이는 이렇게 해 닦아줍니다. 127.0.0.1:8000/media/gallery/new/comming_soon.jpg

Ankit Tiwari2021-08-04 23:21:55
  • 이전 html - AJAX 양식은 PHP while 루프 내부에서 forrm 값을 게시하지 않습니다
  • 다음 javascript - jQuery를 사용하여 여러 요소에서 클래스 추가 및 제거