0

モデル:

class Subject(models.Model):
    name = models.CharField(max_length=50)
    places = models.IntegerField()

class Temp(models.Model):
    subject_r = models.ForeignKey(Subject)

私の見解では、簡単なことをしたいと思います。サブジェクトIDがTempテーブルに存在する場合、フィールドの場所(整数)を1だけデクリメントする必要があります。それ以外の場合は、そのままにして、正しいものを表示したいと思います。テンプレートに変数を配置します。データベースに新しい値を保存したくないことに注意してください。テンプレートに正しく表示されるようにしたいだけです。

4

1 に答える 1

1
temp = Temp.objects.values_list('subject_r_id', flat=True)
subjects = Subject.objects.all()
for subject in subjects:
    if subject.id in temp:
        subject.places = subject.places - 1

これは表示専用なので、データベースを変更しようとしていないことが明確になるように、実際には任意の新しい属性を設定します。

temp = Temp.objects.values_list('subject_r_id', flat=True)
subjects = Subject.objects.all()
for subject in subjects:
    if subject.id in temp:
        subject.places_display = subject.places - 1
    else:
        subject.places_display = subject.places


{{ subject.places_display }}
于 2013-01-03T02:14:32.380 に答える