django - 在刷新服务器之前,更改不会反映在 tempate django 中
问题描述
我正在尝试更新我网站的徽标,直到第一次上传并在模板中加载它之前没有问题。但是,当我尝试更新徽标时,它不会反映在模板中,直到我进行一些更改以有意刷新 Django 服务器或我中断并再次运行它。我正在使用 DJANGO 1.11.3 和 PYTHON 3。我对 django 还是很陌生,如果有人需要以下内容以外的其他内容,我会提供。谢谢
页眉.html
<a href="#" class="logo">
<!-- mini logo for sidebar mini 50x50 pixels -->
<!-- logo for regular state and mobile devices -->
{% load static %}
{% for i in company_logo %}
<img class="NO-CACHE" src = "/{{ i.Company_logo }}" alt="Profile Picture" style="height:50px;width:120px">
{% endfor %}
视图.py
from .models import Company_master
company_logo = Company_master.objects.all()
def companys_logo(request):
company_data = Company_master.objects.all()
return render(request,'service/companys_logo.html',{'company_logo':company_logo, 'company_data':company_data})
def post_company_logo(request):
company_id = request.POST.get('inp_id_hidden')
company_logo = request.FILES.get('inp_company_logo')
company_obj = Company_master.objects.get(Company_code = company_id)
company_obj.Company_logo = company_logo
company_obj.save()
company_obj.refresh_from_db()
return redirect("service:company_details")
模型.py
class Company_master(models.Model):
Company_code = models.AutoField(primary_key=True)
Company_name = models.CharField(max_length=100)
Address = models.CharField(max_length=200)
Owner_name = models.CharField(max_length=50)
Jurisdiction = models.CharField(max_length=100, null=True)
Email = models.CharField(max_length=100, null=True)
Email_service = models.CharField(max_length=50, null=True)
Email_accounts = models.CharField(max_length=50, null=True)
PAN_no = models.CharField(max_length=20, null=True)
GSTIN_no = models.CharField(max_length=30, null=True)
Dealer_code = models.CharField(max_length=30, null=True)
Bank_name = models.CharField(max_length=30, null=True)
Branch_name = models.CharField(max_length=30, null=True)
Branch_code = models.CharField(max_length=20, null=True)
Account_no = models.CharField(max_length=30, null=True)
IFSC_code = models.CharField(max_length=20, null=True)
SMTP = models.CharField(max_length=20, null=True)
Fax = models.CharField(max_length=30, null=True)
CIN_no = models.CharField(max_length=30, null=True)
Principal = models.CharField(max_length=10, null=True)
Working_hrs = models.CharField(max_length=50, null=True)
Proxy = models.CharField(max_length=30, null=True)
Password = models.CharField(max_length=30, null=True)
Port_no = models.CharField(max_length=10, null=True)
Phone_nos = models.CharField(max_length=100, null=True)
Mobile_nos = models.CharField(max_length=100)
Company_logo = models.ImageField(upload_to='static/service/media/', null=True)
def __str__(self):
return str(self.Company_name)
解决方案
问题已解决。当我更新徽标时,它不会从数据库中获取新值,因为以下变量是全局声明的,这会阻止新值进入。
# views.py
company_logo = Company_master.objects.all()
这个变量应该包含在每个页面中,以便在页面刷新时一次又一次地调用它,就像这样
def companys_logo(request):
company_logo = Company_master.objects.all()
company_data = Company_master.objects.all()
return render(request,'service/companys_logo.html',{'company_logo':company_logo, 'company_data':company_data})
推荐阅读
- c# - 如何将对象解析为 json 反序列化之类的类?
- mysql - SQL 更新所有 varchar 列行
- c# - 无法在 C# 中验证对模拟的调用
- laravel - 问题理解 Laravel 6.0 Passport with Password Grant Tokens 流程
- javascript - 隐藏/重新展开后父/子表刷新
- c# - 对 Azure 应用服务上的程序集加载问题/文件未找到异常进行故障排除的建议
- python-3.x - OSError:[Errno 30] 只读文件系统:英特尔开发云上的“/glob/intel-python/versions/2018u2/intelpython3/lib/python3.6/site-packages/docs”
- git - 解决 Git 中的合并冲突时的新文件
- python - discord.py 机器人的 on_message 函数出错
- javascript - 离子:我的 http.post 到 WebApi RestFull 不起作用