Django: как сохранить изображение в django?
я пытаюсь сохранить изображение в django, но кажется, что это не работает, как ожидалось, и я не могу сказать, что происходит с кодом. то, как я отправляю форму, не является прямым способом form.save
но я пытаюсь создать тему, если нет существующей темы из выпадающего списка, другая информация сохраняется, но изображение не сохраняется
views.py
@login_required
def CreateRoom(request):
topics = Topic.objects.all()
if request.method == "POST":
form = ChatRoomForm(request.POST, request.FILES)
topic_name = request.POST.get("topic")
topic , created = Topic.objects.get_or_create(name = topic_name )
new_room = Chatroom.objects.create(
host=request.user ,
roomname = request.POST.get("roomname") ,
topic = topic ,
description = request.POST.get("description" ),
image = request.POST.get("image" )
)
new_room.participants.add(request.user.id)
return redirect("chats:chat-room" , pk=new_room.id)
else:
form = ChatRoomForm()
context = {"form": form, "button_value": "Create" , "topics" : topics}
return render(request, "chat/room_form.html", context)
create-room.html
<form action="" method="POST" enctype="multipart/form-data">
{% csrf_token %}
<label for="room_topic"> Topic </label>
<input value = "{{room.topic.name}}" type="text" name="topic" list="topic-list" placeholder = "Topic for the room.." required />
<datalist id="topic-list">
<select id="room_topic">
{% for topic in topics %}
<option value="{{topic.name}}">{{topic.name}}</option>
{% endfor %}
</select>
</datalist>
{{form.image}}
{{form.roomname}}
{{form.description}}
<input type="submit" value="{{button_value}}" />
</form>
https://nemecek.be/blog/79/working-with-django-imagefield
Надеюсь, эта ссылка поможет вам сохранить изображение в django.
Вы должны взять изображение из request.FILES, после записать его в хранилище, затем установить путь к изображению в поле вашей модели