我想为每个用户保存一个配置文件照片。instance.id在上传图片时返回“无”。我在等待您的帮助。
models.py
def get_image_path(instance, filename):
return "%s/%s" % (instance.id, "profil.png")
class UserProfile(models.Model):
profile_image = models.ImageField(upload_to=get_image_path, blank=True, null=True)
froms.py
from .models import UserProfile
class image(forms.ModelForm):
class Meta:
model = UserProfile
fields = '__all__'
views.py
def model_form_upload(request):
if request.method == 'POST':
form = image(request.POST, request.FILES)
if form.is_valid():
form.save()
return redirect('home')
else:
form = image()
return render(request, 'model_form_upload.html', {'form': form})
model_form_upload.html
{% extends 'base.html' %}
{% block content %}
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Upload</button>
</form>
<p><a href="{% url 'home' %}">Return to home</a></p>
{% endblock %}
答案 0 :(得分:0)
由于该实例尚未创建,因此您目前无法引用instance.id
,因此它没有ID。因此,可以使用其他模型字段,也可以使用子元素的ID。查看文档中的示例:https://docs.djangoproject.com/en/2.1/ref/models/fields/