0

私は車の詳細を記入できるモデル 'VehicleDetails'と車両位置を更新する別のモデル 'TripStatus'を作成しました。私は私の下のコードのようにした最新の場所を取得したいと思った。私は特定の車両の位置値を返すために私のビューでprefetch_relatedを使用します。しかし、サーバーの実行後、エラーが発生します。 "TripStatusオブジェクトには属性 'prefetch_related'がありません。私はこれを解決するのを助けてくれてありがとう。 models.py:python/django:モデルオブジェクトに属性 'prefetch_related'がありません

class VehicleDetails(models.Model): 
    Vehicle_No = models.CharField(max_length=20) 

class TripStatus(models.Model): 
    vehicledetails = models.ForeignKey(VehicleDetails, related_name='statuses') 
    CHOICES = (('Yet to start', 'Yet to start'),('Trip starts', 'Trip starts'), ('Chennai','Chennai'), ('Vizag', 'Vizag'), ('Kolkata', 'Kolkata')) 
    Vehicle_Status = models.CharField(choices=CHOICES, default="Yet to start", max_length=20) 
    statustime = models.DateTimeField(auto_now=False, auto_now_add=True) 

views.py:

def status(request): 
    tripstatus = TripStatus.objects.all().latest('statustime').prefetch_related('statuses') 
    context = { 
     "tripstatus": tripstatus, 
    } 
    return render(request, 'loggedin_load/active_deals.html', context) 

テンプレート:

{% for status in vehicledetails.statuses.all %} 
{{status.Vehicle_Status}} 
{% endfor %} 

答えて

1

クエリセットオブジェクト上で動作しますprefetch_related。 Latestはクエリーセットではなく単一のモデルを返します。

これは動作するはずです:

tripstatus = TripStatus.objects.all().prefetch_related('statuses').latest('statustime') 
+0

は現在、:TripStatusオブジェクトの 'ステータス' を見つけることができません、 'ステータスが')(prefetch_relatedする無効なパラメータです。 – sumanth

+0

pefetch_relatedは、パフォーマンスのために外部キーテーブルをロードします。 TripStatusモデルでは、ステータスの外部キーは実際には持っていないので、prefetch_related呼び出しを削除してください。 –

関連する問題