0
이미지의 uploas 시스템을 만들고 있습니다. 하지만 오류가 발생했습니다. /accounts/upload_save/ 에 ValueError가 있는데 기수 10 인 'int'에 대한 리터럴이 잘못되었습니다. 이 오류는 int 유형 값이 인수에 없다고 생각합니다.ValueError는 밑이 10 인 int()에 대한 리터럴이 올바르지 않습니다. '
내 역 추적은
photo_obj = Post.objects.get(id=photo_id)
가 잘못 보여 주었다. 하지만 get()은 int 타입 값이 될 수 있으므로 오류를 수정할 수는 없습니다. 어떻게 해결할 수 있습니까? profile.html에서 urls.py
from django.conf.urls import url
from . import views
from django.contrib.auth.views import login, logout
urlpatterns = [
url(r'^regist/$', views.regist,name='regist'),
url(r'^regist_save/$', views.regist_save, name='regist_save'),
url(r'^profile/$', views.profile, name='profile'),
url(r'^upload/(?P<p_id>\d+)/$', views.upload, name='upload'),
url(r'^upload_save/$', views.upload_save, name='upload_save'),
]
에서 내가 views.py에 쓴
,
@require_POST
def regist_save(request):
form = RegisterForm(request.POST)
if form.is_valid():
user = form.save()
login(request, user)
context = {
'user': request.user,
}
return redirect('profile')
context = {
'form': form,
}
return render(request, 'registration/accounts/regist.html', context)
def photo(request):
d = {
'photos': Post.objects.all(),
}
return render(request, 'registration/accounts/profile.html', d)
def upload(request, p_id):
d = {
'p_id': p_id,
}
return render(request, 'registration/accounts/profile.html', d)
def upload_save(request):
photo_id = request.POST.get("p_id", "")
photo_obj = Post.objects.get(id=photo_id)
files = request.FILES.getlist("files[]")
photo_obj.image1 = files[0]
photo_obj.image2 = files[1]
photo_obj.image3 = files[2]
photo_obj.save()
return redirect("registration/accounts/profile.html")
는
{% extends "registration/accounts/base.html" %}
{% block content %}
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>UPLOAD</title>
</head>
<body>
user.username: {{ user.username }}<hr>
user.is_staff: {{ user.is_staff }}<hr>
user.is_active: {{ user.is_active }}<hr>
user.last_login: {{ user.last_login }}<hr>
user.date_joined: {{ user.date_joined }}
<div class="container">
<form action="{% url 'accounts:upload_save' %}" method="POST" enctype="multipart/form-data">
{% csrf_token %}
<input type="file" name="files[]" multiple>
<input type="hidden" value="{{ p_id }}" name="p_id">
<input type="submit" value="Upload">
</form>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
</body>
</html>
{% endblock %}
들으을 알 수 있도록,이 빈 문자열이있는
photo_obj
을 얻으려고, 당신에게 빈 문자열로 설정 내 p_id 정의는 어디에도 없습니다, 맞습니까? { 가 'p_id'p_id, } = D : 는하지만 내가 데프 (요청, p_id) 업로드 views.py 에서 p_id를 썼다 생각 수익률 (요청 렌더링을, '등록/계정/profile.html', D) 그래서 어떻게 해결할 수 있습니까? – lili'p_id'는 양식의 매개 변수 중 하나 여야합니다.이 매개 변수가 사용 가능한지 확인하려면 profile.html 템플리트를 점검해야합니다. – Shane