Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django ImageField没有与之关联的url属性_Python_Python 3.x_Django_Django Models_Django Templates - Fatal编程技术网

Python Django ImageField没有与之关联的url属性

Python Django ImageField没有与之关联的url属性,python,python-3.x,django,django-models,django-templates,Python,Python 3.x,Django,Django Models,Django Templates,我正在尝试创建一个单页应用程序,您可以将图片上传到数据库,并将其显示在索引页中 我无法显示照片,即使在调用html部分{{{post.picture}}时,它返回图片的路径 媒体设置: MEDIA_ROOT = os.path.join(BASE_DIR, 'media') MEDIA_URL = '/media/' 视图: 型号: from django.db import models class Post(models.Model): picture = models.Ima

我正在尝试创建一个单页应用程序,您可以将图片上传到数据库,并将其显示在索引页中

我无法显示照片,即使在调用html部分
{{{post.picture}}
时,它返回图片的路径

媒体设置:

MEDIA_ROOT =  os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
视图:

型号:

from django.db import models

class Post(models.Model):
    picture = models.ImageField(upload_to='photos/', blank=True, null=True)
表格:

from django.forms import ModelForm
from random_tasks_app.models import Post

class UploadImageForm(ModelForm):
    class Meta():
        model = Post
        fields = '__all__'
html文件:

<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>
    <form method = "POST" enctype="multipart/form-data">
        {% csrf_token %}
        {{ form.as_p }}
        <button type="submit">Upload</button>
    </form>
    {%for post in posts%}
      <img src="{{ post.picture.url }}"/>
    {%endfor%}
  </body>
</html>

谢谢。

您可以添加一个默认属性,它将被解决

picture = models.ImageField(upload_to='default/', blank=True, null=True, default='default.jpg' )

hotel
来自哪里?当我收到错误时,从某个网站复制了这部分代码(以为我可能错过了一个花括号或什么),没有注意到,我将其更改为post,但我仍然收到相同的错误。在html文件中将您的代码更改为此,以查看您的URL:{%forpost in posts%}{{post.picture.url}

{%endfor%}@AndreyBorzenko这返回一个错误。它只是返回:“picture”属性没有与之关联的文件。@AndreyBorzenko我让它工作了,我在上传图片时得到了类似“/media/photos/Screenshot_70.png”的内容。尝试了这个方法,但似乎不起作用:对我不起作用,但我注意到一件奇怪的事情,出于某种原因,HTML不会显示任何图像,即使它与django无关。我认为这与路由有关。似乎django正在阻止任何正在显示的图像表单,即使我试图显示一个不使用django功能的图像。如果我使用普通html打开它,这会起作用,但在django服务器上运行它时,它会被禁用st可能不起作用,我认为如果您提交ImageField空django将引发错误,谢谢。忘记在URL.py URL模式的末尾添加:+static(settings.MEDIA\u URL,document\u root=settings.MEDIA\u root)
raise ValueError("The '%s' attribute has no file associated with it." % self.field.name)
ValueError: The 'picture' attribute has no file associated with it.
picture = models.ImageField(upload_to='default/', blank=True, null=True, default='default.jpg' )