问题描述
vue报错出现 [Vue warn]: Error compiling template
出现的原因是把新建的实例放在了被绑定的组件当中
<div id="app">
<script type="text/javascript">
新建的实例
</script>
</div>解决方法
<div id="app">
</div>
<script type="text/javascript">
新建的实例
</script>![vue报错出现 [Vue warn]: Error compiling template](https://cdn.uziwp.com/vue.js-logo.png)
vue报错出现 [Vue warn]: Error compiling template
出现的原因是把新建的实例放在了被绑定的组件当中
<div id="app">
<script type="text/javascript">
新建的实例
</script>
</div><div id="app">
</div>
<script type="text/javascript">
新建的实例
</script>
昨日宝塔面板爆出严重bug,目前官方已经给宝塔面板用户发送短信提醒升级,影响范围包括了宝塔linux面板 7.4.2以及宝塔windows面板 6.8。直接访问 http://ip:888/pma 无需权限认证,即可直接登录phpmyadmin。
宝塔面板官方发布紧急安全更新短信通知称,Linux面板7.4. 2 版本/Windows面板6. 8 版本存在安全隐患,官方已发布紧急更新,请所有使用此版本的用户务必升级到最新版,更新方法,登录面板直接升级更新即可,如更新出现问题,请登录宝塔论坛反馈或者联系客服反馈。


据悉,Linux版本7.4.2版本的用户将更新到宝塔linux 正式版 7.4.3,Windows版本6.8的用户将更新到Windows 正式版6.9.0。

在Django的项目开发中,需求是要在后台得列表中非管理员用户只列出自己的相关记录。下面我们记录一下 admin.py 详细的代码并给出详解。
class Sale_Admin(admin.ModelAdmin):
list_display = ('customer','idc', 'line_type', 'charge_type', 'saler', 'graph_id', 'alarm_times')
list_per_page = 20
# list_editable = ['graph_id',]
list_filter = ('customer', 'saler')
search_fields = ['customer__name','idc__name','graph_id']
ordering = ('idc',)
readonly_fields = ('v_max', 'v_nf', 'update_time', 'alarm_times')
def get_queryset(self, request):
qs = super(Sale_Admin,self).get_queryset(request)
# if request.user.is_superuser:
# return qs
return qs.filter(saler=23)
def has_add_permission(self, request):
return False
def has_change_permission(self, request, obj=None):
return False
def has_delete_permission(self, request, obj=None):
return False
def has_view_permission(self, request, obj=None):
return False get_queryset 可以自定义对象列表,比如非管理员登录,我们只显示saler值为23的记录。
当然还可以控制当前用是否能查看、修改、添加、删除权限。
has_add_permission has_change_permission has_delete_permission has_view_permission 则是判断是否具有对应的权限。

先上表结构 models.py 代码如下
class PeojectUser(models.Model):
# 项目参与者
user = models.ForeignKey(to='UserInfo',on_delete=models.CASCADE)
project = models.ForeignKey(to='Project',on_delete=models.CASCADE)
star = models.BooleanField(default=False)
invitee = models.ForeignKey(to='UserInfo',on_delete=models.CASCADE)
create_datetime = models.DateTimeField(auto_now_add=True)在django 执行 makemigrations 的时候,如果出现下面这种错误
SystemCheckError: System check identified some issues:
ERRORS:
web.PeojectUser.invitee: (fields.E304) Reverse accessor for 'PeojectUser.invitee' clashes with reverse accessor for 'PeojectUser.user'.
HINT: Add or change a related_name argument to the definition for 'PeojectUser.invitee' or 'PeojectUser.user'.
web.PeojectUser.user: (fields.E304) Reverse accessor for 'PeojectUser.user' clashes with reverse accessor for 'PeojectUser.invitee'.
HINT: Add or change a related_name argument to the definition for 'PeojectUser.user' or 'PeojectUser.invitee'.这个问题出现的原因很简单,就是因为我们我们在PeojectUser 项目中有2个字段都进行了一对多的引用了UserInfo 表,这样会给后面进行反向查询的时候,造成django无法处理,因此提示是说我们是需要指定related_name 。
先说一个常规的问题:
正常我们的操作:
obj = UserInfo.objects.get(id=1)
obj.projectuser_set.all()但是由于我们在PeojectUser设置了2个关联,因此在我们后续执行的时候,django不知道需要反向关联那个字段了。所以提示我们添加 related_name 字段
针对上面的例子,我们做一下修改:
```python
class PeojectUser(models.Model):
# 项目参与者
user = models.ForeignKey(to='UserInfo',on_delete=models.CASCADE,related_name='a')
project = models.ForeignKey(to='Project',on_delete=models.CASCADE)
star = models.BooleanField(default=False)
invitee = models.ForeignKey(to='UserInfo',on_delete=models.CASCADE,related_name='b')
create_datetime = models.DateTimeField(auto_now_add=True)那么在设置了上面的格式后,如果要进行不同的反向关联,则就可以 使用如下方式:
obj = UserInfo.objects.get(id=1)
obj.a.all()
obj.b.all()
使用jquery获取url以及使用jquery获取url参数是我们经常要用到的操作,这里我们做一下记录
console.log(window.location.href);// 修改url中的某个参数
function changeURLArg(url,arg,arg_val){
var pattern=arg+'=([^&]*)';
var replaceText=arg+'='+arg_val;
if(url.match(pattern)){
var tmp='/('+ arg+'=)([^&]*)/gi';
tmp=url.replace(eval(tmp),replaceText);
return tmp;
}else{
if(url.match('[\?]')){
return url+'&'+replaceText;
}else{
return url+'?'+replaceText;
}
}
return url+'\n'+arg+'\n'+arg_val;
}window.location = changeURLArg('当前地址或url字符串','参数名','参数值');//获取url中的参数
function getUrlParam(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
var r = window.location.search.substr(1).match(reg); //匹配目标参数
if (r != null) return unescape(r[2]); return null; //返回参数值
}
<select id="ddl">
<option value="100" emoney="12" >选项1</option>
<option value="200" emoney="13" >选项2</option>
<option value="300" emoney="14" >选项3</option>
</select>//获取属性emoney的值
var iteValue = $("#ddl").find("option:selected").attr("emoney");
console.log('emoney的值:' + iteValue);
//获取选中项的value
var itemValue1 = $("#ddl").val();
console.log('Value:' + itemValue1);
//获取选中项的文本值
var itemText = $("#ddl option:selected").text();
console.log('Text:' + itemText);
//获取选中项的文本值
var itemText1 = $("#ddl").find("option:selected").text();
console.log('Text:' + itemText1);