ドライバーモデルがあり、ドライバーが多くの車を所有しているとします。QuerySet
特定の車を運転しているすべてのドライバーを表示できるように、フィルターを適用できるようにしたいと思います。すなわち:
class Driver(models.Model):
primary_car = models.ForeignKey(Car, related_name='primary')
cars = models.ManyToMany(Car, related_name = 'all')
def save(self, force_insert=False, force_update=False, using=None, *args, **kwargs):
if self.primary_car not in self.cars.all():
self.cars.add(self.primary_car)
super(Car, self).save(force_insert=False, force_update=False, using=None, *args, **kwargs)
class Car(models.Models):
name = models.CharField(max_length=30)
たとえば、私には50人のドライバーがいて、7人がユーゴスを持っていて、2人がユーゴスをメインカーとして持っていることを知っているとしましょう。これらのドライバーを検索するにはどうすればよいですか?この答えを見つけるのに2分もかからないだろうと思ったので、おそらく基本的なものが欠けています。
save()
更新:マングルメソッドを修正しました