小编Jas*_* TK的帖子

如何使用 Django 在查询中加入 3 个表

模型.py

class Employee(models.Model):
    emp_no = models.IntegerField(primary_key=True)
    first_name = ...
    last_name = ...

    # emp_no first_name  last_name
      ------ ----------  ----------
      10005  Christian   Erde

class DeptEmp(models.Model):
    emp_no = models.ForeignKey(Employee, on_delete=models.CASCADE)
    dept_no = models.ForeignKey(Department, on_delete=models.CASCADE)

    # dept_no_id  emp_no_id 
      ----------  ----------
      d003        10005     

class Department(models.Model):
    dept_no = models.CharField(primary_key=True, max_length=4)
    dept_name = models.CharField(unique=True, max_length=40)

    #  dept_no     dept_name      
       ----------  ---------------
       d003        Human Resources
Run Code Online (Sandbox Code Playgroud)

视图.py

class EmpList(ListView):
    queryset = Employee.objects.all().select_related('deptemp').select_related('department')
Run Code Online (Sandbox Code Playgroud)

员工列表.html

{% for emp in object_list %}
    {{ emp.first_name }}
    {{ emp.last_name }}
    {{ emp.department.dept_name }}
{% …
Run Code Online (Sandbox Code Playgroud)

python sqlite django listview detailview

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

如何在DetailView中使用PK(主键)字段以外的其他字段进行查询

网址.py

urlpatterns = [
    url(r'^employee/(?P<emp_no>[0-9]+)/$', TitleDetail.as_view(), name='e-title'),  
    # /employee/10001/
    ]
Run Code Online (Sandbox Code Playgroud)

视图.py

class TitleDetail(DetailView):
    model = Title
    pk_url_kwarg = "emp_no"

    def get_context_data(self, **kwargs):
        context = super(TitleDetail, self).get_context_data(**kwargs)
        context['title_list'] = Title.objects.filter(emp_no_id=self.kwargs['emp_no'])
        return context
Run Code Online (Sandbox Code Playgroud)

模型.py

class Title(models.Model):
    emp_no = models.ForeignKey(Employee)
    title = models.CharField(max_length=50)
    from_date = models.DateField()
    to_date = models.DateField()
Run Code Online (Sandbox Code Playgroud)

数据库中的样本数据:

id          title            from_date   to_date     emp_no_id 
----------  ---------------  ----------  ----------  ----------
1           Senior Engineer  1986-06-26  9999-01-01  10001     
2           Staff            1996-08-03  9999-01-01  10002  
Run Code Online (Sandbox Code Playgroud)

为什么它给我

找不到页面:找不到与查询匹配的标题。

python sqlite django listview detailview

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

双星号错误:语法无效

原始问题在这里

我想基于[pid] [dbid] [eid] [sid]总结[qty]。

这段代码适用于v3.6.4,但是当我迁移到v3.4时,我收到了一条错误消息:

new_d =  [ [{'pid': 146, 'dbid': 1, 'eid': 6212, 'qty': 10, 'sid': 6}, {'pid': 146, 'dbid': 1, 'eid': 6212, 'qty': 20, 'sid': 6}],
           [{'pid': 232, 'dbid': 1, 'eid': 6212, 'qty': 1, 'sid': 56}, {'pid': 232, 'dbid': 1, 'eid': 6212, 'qty': 1, 'sid': 56}],
           [{'pid': 146, 'dbid': 1, 'eid': 6212, 'qty': 100, 'sid': 56}, {'pid': 146, 'dbid': 1, 'eid': 6212, 'qty': 100, 'sid': 56}]]

final_result = [{**i[0], **{'qty':sum(b['qty'] for b in i)}} for i in …
Run Code Online (Sandbox Code Playgroud)

python python-3.x

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

标签 统计

python ×3

detailview ×2

django ×2

listview ×2

sqlite ×2

python-3.x ×1