14

ジャンゴ初心者の質問です。私は次のモデルを持っています:

class Leg(models.Model):
    startpoint = models.CharField(max_length=50, help_text="examples: 'Smith Elementary' or 'riders' houses'; less than 50 characters.")
    endpoint = models.CharField(max_length=50, help_text="examples: 'Smith Elementary' or 'riders' houses'; less than 50 characters.")
    riders = models.ManyToManyField(Rider, blank=True)
    drivers = models.ManyToManyField(Driver, blank=True)

モデルのインスタンスをテンプレートで「脚」として使用できるようにします。テンプレートで、そのインスタンスに関連付けられているドライバーがあるかどうかを確認したいと思います。{% if leg.drivers %} を試しましたが、レッグにドライバーがあるかどうかに関係なく、常に True と評価されるようです。

実際にドライバーが存在するかどうかを確認するにはどうすればよいですか? 基本的な質問で申し訳ありませんが、理解できないようです。

4

2 に答える 2

17

{% if leg.drivers %}これは多対多のマネージャーになるため、常に true になります。{% if leg.drivers.all %}関連付けられているすべてのドライバーを取得してみてください。

于 2012-08-26T14:04:10.250 に答える
1

for ... 空のテンプレート タグは、このために作成されています。単純に leg.drivers.all をループし、ドライバーがない場合にメッセージを表示したい場合は、空の句で実行できます。

于 2012-08-26T14:56:46.490 に答える