Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django:来自2个查询集的链接数据_Python_Django_Django Queryset - Fatal编程技术网

Python Django:来自2个查询集的链接数据

Python Django:来自2个查询集的链接数据,python,django,django-queryset,Python,Django,Django Queryset,我是django的新手,目前正在制作一个管理面板,在这里我可以查看用户订单。我有两个模型字段 订单项模型 class OrderItem(models.Model): customer_id = models.ForeignKey( User, on_delete=models.SET_NULL, blank=True, null=True) product = models.ForeignKey( Product, on_delete=model

我是django的新手,目前正在制作一个管理面板,在这里我可以查看用户订单。我有两个模型字段

订单项模型

class OrderItem(models.Model):
    customer_id = models.ForeignKey(
        User, on_delete=models.SET_NULL, blank=True, null=True)
    product = models.ForeignKey(
        Product, on_delete=models.SET_NULL, blank=True, null=True)
    order_id = models.ForeignKey(
        Order, on_delete=models.SET_NULL, blank=True, null=True)
    quantity = models.IntegerField(default=0, null=True, blank=True)
    date_added = models.DateTimeField(auto_now_add=True)
用户模型

class Users(AbstractBaseUser):
    name = models.CharField(max_length=200)
    email = models.CharField(max_length=200)
    password = models.CharField(max_length=255)
views.py

def admin_panel(request):
    orders=OrderItem.objects.all().order_by('-customer_id')
    context={
        'orders':orders,
    }
    return render(request, 'index.html', context)
index.html

{% for order in orders %}
   <tr>
   <td>{{order.order_id}}</td>
   <td>{{order.customer_id}}</td>
   <td>{{order.date_added}}</td>
   <td>{{order.product_id}}</td>
   <td>{{order.quantity}}</td>
   <td><span class="label label-success">COMPLETED</span></td>
   </tr>
{% endfor %}
{%用于订单%}
{{order.order_id}
{{order.customer_id}
{{订单日期}
{{order.product_id}
{{order.quantity}}
完整的
{%endfor%}

在my views.py中,不是每个客户id,而是如何根据用户模型获取客户的实际名称?

因此,首先,您需要在视图中收集相关数据。您可以提高查询的效率,以便它在收集订单的同时收集相关用户

orders=OrderItem.objects。选择相关('customer\u id').all().order\u by('-customer\u id')

然后在模板中执行
{{order.customer\u id.name}

值得注意的是,您通常不会在FK关系的字段上添加
\u id
后缀,因为django将在数据库级别的内部执行此操作。因此,您的数据库字段可能是
customer\u id\u id
。因为在django中,可以遍历这种关系,所以通常只需将其称为
customer
,因为您可以执行
customer.name
之类的操作


你可以在这里多读一点

因此,首先,您希望在视图中收集相关数据。您可以提高查询的效率,以便它在收集订单的同时收集相关用户

orders=OrderItem.objects。选择相关('customer\u id').all().order\u by('-customer\u id')

然后在模板中执行
{{order.customer\u id.name}

值得注意的是,您通常不会在FK关系的字段上添加
\u id
后缀,因为django将在数据库级别的内部执行此操作。因此,您的数据库字段可能是
customer\u id\u id
。因为在django中,可以遍历这种关系,所以通常只需将其称为
customer
,因为您可以执行
customer.name
之类的操作


你可以在这里多读一点

这给了你什么?{{order.customer_id.name}@Kurosh Ghanizadeh它给空字符串这给了你什么?{{order.customer_id.name}@Kurosh Ghanizadeh它给出了空字符串