我正在尝试更新网站的徽标,直到第一次将其上传并加载到模板中才没有问题。但是,当我尝试更新徽标时,它不会反映在模板中,除非我进行了一些更改以有意刷新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)
答案 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})