1

Django-TastypieDjango モデルの REST API を作成するために使用しています。私のテストユーザーモデルには、次のフィールドがあります。

user_id       models.AutoField(primary_key=True)
user_name     models.CharField(max_length=200, db_index=True)
user_rating   models.IntegerField(default=0)

ここで、リクエストに応じて毎回ユーザーの評価を 1 ずつ増やす API を書きたいと思います。値は前の値より 1 大きくなります。

私はすでにDjango-Tasypieのドキュメントを調べて、直接的な解決策があるprepend_urlかどうかを確認し、リクエストを変更しようとしましたが、現在の評価を取得して更新する方法がわかりません.

4

2 に答える 2

0

わかった。resource1 を更新すると、ユーザー リソースの「user_rating」フィールドが更新されるということです。resource1 に関連付けられている model1 の django モデル保存メソッドをオーバーライドできます。

    class Model1(models.Model):
        user = models.ForeignKey('User')
        id = models.BigIntegerField()
        name = models.CharField(max_length=255L)
        class Meta:
            db_table = 'table1'
        def save(self, *args, **kwargs):
            super(Model1, self).save(*args, **kwargs)
            self.user.user_rating += 1
            self.user.save()
于 2013-07-22T07:05:23.683 に答える