小编sur*_*itM的帖子

使用 Django 过滤器搜索

我正在尝试对姓名和电子邮件字段执行搜索。对于电子邮件字段,它给出了一个错误“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)

django filter

5
推荐指数
1
解决办法
4862
查看次数

Django - Javascript 无法在模板中工作

我正在尝试根据用户选择显示一个输入字段。学习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)

html javascript django-templates

5
推荐指数
1
解决办法
6429
查看次数

mount.nfs:ubuntu 14.04.1 LTS上的连接超时

我尝试首次创建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)

nfsclient nfs ubuntu-server ubuntu-14.04

3
推荐指数
1
解决办法
8753
查看次数