直到服务器刷新后,更改才会反映在临时django中

时间:2018-08-16 13:16:36

标签: django python-3.x

我正在尝试更新网站的徽标,直到第一次将其上传并加载到模板中才没有问题。但是,当我尝试更新徽标时,它不会反映在模板中,除非我进行了一些更改以有意刷新Django服务器,或者我中断并再次运行它。我正在使用DJANGO 1.11.3和PYTHON3。我对django还是很陌生,如果有人需要以下内容以外的其他内容,我将提供。谢谢

Header.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 %}

views.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")

models.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)

1 个答案:

答案 0 :(得分:0)

问题已解决。当我更新徽标时,它不会从数据库中获取新值,因为全局声明了以下变量,这阻止了新值的出现。

# 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})