我正在尝试对姓名和电子邮件字段执行搜索。对于电子邮件字段,它给出了一个错误“int() 的无效文字,基数为 10:'abc@xyz.com'”。但是当我使用 user.id 时,它给出了正确的结果。对于名称字段,它给出了无法将关键字 'first_name' 解析为字段。我如何让它工作。任何帮助将不胜感激。我的两个模型是:
class publication(models.Model):
title = models.CharField(max_length=500)
user = models.ForeignKey(settings.AUTH_USER_MODEL, default=1)
....
class MyUser(AbstractBaseUser, PermissionsMixin):
email = models.EmailField(_('email address'), max_length=254,
unique=True)
first_name = models.CharField(_('first name'), max_length=30,
blank=True)
last_name = models.CharField(_('last name'), max_length=30,
blank=True)
.....
Run Code Online (Sandbox Code Playgroud)
我的看法:
def search(request):
result = publication.objects.all()
query = request.GET.get("query")
if query:
result = result.filter(
Q(title__icontains=query) |
Q(user__first_name__icontains=query) |
Q(user__email=query)
).distinct()
user_filter = UserFilter(request.GET, queryset=result)
return render(request, "search.html", {'filter': user_filter})
Run Code Online (Sandbox Code Playgroud)
我的过滤器:
class UserFilter(filters.FilterSet):
title = filters.CharFilter(lookup_expr='icontains')
first_name = filters.CharFilter(lookup_expr='iexact')
user = filters.CharFilter(lookup_expr='exact') …Run Code Online (Sandbox Code Playgroud) 我正在尝试根据用户选择显示一个输入字段。学习stackoverflow,我写了如下代码:
<form action="/register/" method="post" enctype="multipart/form-data">{% csrf_token %}
<select name="designation" id="designation">
<option value="faculty">Faculty</option>
<option value="student">Student</option>
</select>
<div id="students" style="display:none;">
<input type="file" name="uploadFile">
</div>
</form>
<script type="text/javascript">
$('#designation').on('change',function(){
if( $(this).val()==="student"){
$("#students").show()
}
else{
$("#students").hide()
}
});
</script>
Run Code Online (Sandbox Code Playgroud)
该代码确实可以在https://jsfiddle.net/中运行。然而,当我尝试在我的 django 模板中使用它时,它不起作用。(即,在选择“学生”时没有出现任何内容)。我的 base.html 中还包含以下内容。
<script src="{% static 'jquery-3.2.1.min.js' %}"></script>
<script src="{% static 'js/bootstrap.min.js' %}" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
Run Code Online (Sandbox Code Playgroud)
更新: base.html: hideshow.js 是脚本。
<!DOCTYPE html>
{% load staticfiles %}
{% load static %}
<html lang="en"
xmlns="http://www.w3.org/1999/html">
<head>
<meta charset="UTF-8">
<link href="{% static 'css/bootstrap-dist.min.css' %}" rel="stylesheet"> …Run Code Online (Sandbox Code Playgroud) 我尝试首次创建nfs服务器。尝试安装到服务器时,出现错误“ mount.nfs:连接超时”。我的服务器版本是ubuntu 14.04.5 LTS,而我的客户端是ubuntu 14.04.1 LTS。以下是我执行的步骤。
在服务器端:
#vi / etc / exports
/home/nfs 192.168.13.81(rw,async,no_root_squash)
Run Code Online (Sandbox Code Playgroud)
#sudo服务nfs-kernel-server重新启动
#sudo exportfs -u
/home/nfs 192.168.13.81
Run Code Online (Sandbox Code Playgroud)
在客户端:
#sudo安装192.168.13.80:/home/nfs / home / nfs
mount.nfs: Connection timed out
Run Code Online (Sandbox Code Playgroud)
在尝试时
#sudo mount -t nfs4 -o proto = tcp,port = 2049 192.168.13.80:/home/nfs / home / nfs
mount.nfs4: mounting 192.168.13.80:/home/nfs failed, reason given by server: No such file or directory
Run Code Online (Sandbox Code Playgroud)
“#rpcinfo -p”给出:
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 …Run Code Online (Sandbox Code Playgroud)