django instance.id =无

时间:2018-08-19 19:58:21

标签: python django instance

我想为每个用户保存一个配置文件照片。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 %}

1 个答案:

答案 0 :(得分:0)

由于该实例尚未创建,因此您目前无法引用instance.id,因此它没有ID。因此,可以使用其他模型字段,也可以使用子元素的ID。查看文档中的示例:https://docs.djangoproject.com/en/2.1/ref/models/fields/