我尝试使用此查询但未提供预期结果。
ships = Shipment.objects.filter(added_on__gte=("2016-10-22")).annotate(sku_count=Count('sku')).order_by('sku_count')
答案 0 :(得分:0)
如果你想和' sku'列和按其计数排序,这可以帮助您。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/content_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="fr.uha.tenich.talk2me.MainActivity"
tools:showIn="@layout/app_bar_main"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="50dp"
android:text="Vous avez atteint le début de ce salon"
android:textAppearance="@android:style/TextAppearance.Material.Medium"
android:textAlignment="center"
android:textColor="@android:color/darker_gray"
android:gravity="center_vertical"
android:background="@android:color/white"
android:id="@+id/debut_salon"/>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1">
<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/current_channel_messages"
android:fillViewport="true"
android:divider="@android:color/white"
android:dividerHeight="1dp"
android:background="@android:color/white"
android:listSelector="@android:color/transparent" />
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="bottom">
<TextView
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@android:color/black"/>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:gravity="bottom"
android:background="@android:color/white">
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="text"
android:hint="Tapez votre message ici"
android:ems="10"
android:id="@+id/message_input"
android:layout_weight="3"
android:backgroundTint="@android:color/transparent" />
<ImageButton
app:srcCompat="@drawable/ic_menu_send"
android:layout_weight="1"
android:layout_height="match_parent"
android:layout_width="wrap_content"
android:background="@android:color/white"
android:onClick="onSendMessageClick" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
答案 1 :(得分:0)
你在上面的评论中说过你想要这个对象。你应该能够做到这一点:
ships = Shipment.objects.filter(added_on__gte("2016-10-22")).annotate(sku_count=Count('sku')).order_by('sku_count')
唯一的问题是你将拥有相同sku的重复行。请记住,当您使用“分组依据”时,您将按照它们共同的值(sku)聚合多个值(货件实例)。
就像维克拉姆上面说的那样,你可以获得独特的skus和他们的计数:
Shipment.objects.filter(added_on__gte("2016-10-22")).values("sku").annotate(sku_count=Count('sku')).order_by('sku_count')
但是为了获得特定的Shipment实例,您必须在此时按'sku'获取Shipment实例。 HTH。