首页 > 解决方案 > 'user_image' 属性没有与之关联的文件 | 姜戈

问题描述

代码说明

在以下代码中,我创建了一个用户仪表板,该仪表板在用户创建帐户后显示。无论用户是否已上传,仪表板上都会显示用户图像。

如果用户尚未上传图片,则会显示默认图片,如下代码所示。

但是如果用户没有上传图片,它会显示错误,如果用户上传了图片,它会正常工作。

代码

仪表板.html

{% if values.user_image.url %}
   <a class="image" href="{% url 'setting' %}"><img src="{{ values.user_image.url }}" alt=""></a>
{% else %}
   <a class="image" href="{% url 'setting' %}"><img src="{% static 'img/user.png' %}" alt=""></a>
{% endif %}

视图.py

@login_required(login_url = "login")
def user_home(request):
    if request.method == "GET":

        record = User.objects.get(email=request.user)
        wallet = Wallet.objects.get(user_id=request.user)
        walletbalance = wallet.wallet_balance

        context = {
            'walletbalance': walletbalance,
            'values': record,
        }

        return render(request, "userdashboard/index.html", context)

错误

ValueError at /user/setting
The 'user_image' attribute has no file associated with it.
Request Method: GET
Request URL:    http://127.0.0.1:8000/user/setting
Django Version: 3.2.6
Exception Type: ValueError
Exception Value:    
The 'user_image' attribute has no file associated with it.
Exception Location: C:\Users\Qasim Iftikhar\anaconda3\lib\site-packages\django\db\models\fields\files.py, line 40, in _require_file
Python Executable:  C:\Users\Qasim Iftikhar\anaconda3\python.exe
Python Version: 3.8.5
Python Path:    
['C:\\xampp\\htdocs\\Projects\\Barter',
 'C:\\Users\\Qasim Iftikhar\\anaconda3\\python38.zip',
 'C:\\Users\\Qasim Iftikhar\\anaconda3\\DLLs',
 'C:\\Users\\Qasim Iftikhar\\anaconda3\\lib',
 'C:\\Users\\Qasim Iftikhar\\anaconda3',
 'C:\\Users\\Qasim Iftikhar\\anaconda3\\lib\\site-packages',
 'C:\\Users\\Qasim Iftikhar\\anaconda3\\lib\\site-packages\\win32',
 'C:\\Users\\Qasim Iftikhar\\anaconda3\\lib\\site-packages\\win32\\lib',
 'C:\\Users\\Qasim Iftikhar\\anaconda3\\lib\\site-packages\\Pythonwin']
Server time:    Sat, 25 Sep 2021 14:38:10 +0000

标签: pythonpython-3.xdjangodjango-templates

解决方案


values.user_image您应该检查, not的真实性values.user_image.url,因为如果没有文件与之关联,则该.urls属性不存在:

<a class="image" href="{% url 'setting' %}"><img src="{% if values.user_image %}{{ values.user_image.url }}{% else %}{% static 'img/user.png' %}{% endif %}" alt=""></a>

推荐阅读