Django3 modelform 中 显示图片
时间: 2024-01-24 11:16:49 浏览: 76
在 Django3 的 modelform 中显示图片,可以使用 Django 自带的 `ImageField` 和 `ImageFieldFile`,然后在模板中使用 `{{ form.image.url }}` 来显示图片的 URL。
步骤如下:
1. 在 models.py 中定义模型时,需要使用 `models.ImageField` 来定义图片字段。例如:
```
from django.db import models
class MyModel(models.Model):
image = models.ImageField(upload_to='images/')
```
2. 在 forms.py 中定义 modelform,需要使用 `forms.ImageField` 来定义表单中的图片字段。例如:
```
from django import forms
from .models import MyModel
class MyModelForm(forms.ModelForm):
class Meta:
model = MyModel
fields = ['image']
widgets = {
'image': forms.ClearableFileInput(attrs={'multiple': True}),
}
```
3. 在模板中使用 `{{ form.image.url }}` 来显示图片的 URL。例如:
```
{% extends 'base.html' %}
{% block content %}
<h1>My Form</h1>
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Submit</button>
</form>
{% if form.image.value %}
<img src="{{ form.image.url }}" alt="My Image">
{% endif %}
{% endblock %}
```
注意:在模板中显示图片之前,需要在 `settings.py` 文件中配置静态文件的路径。例如:
```
STATIC_URL = '/static/'
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]
```
阅读全文