私はdjango-tastypieでアプリケーションを作成していますが、次に示すのは私のmodels.pyとresource.pyファイルです。TastyPieとDjango APIのリクエストデータを操作します
Models.py:
import uuid
from django.db import models
class User(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
name = models.CharField(max_length=50, null=False)
email = models.EmailField(max_length=254, null=False)
password = models.CharField(max_length=100, null=False)
role = models.CharField(max_length=16, default='basic', null=False)
def __unicode__(self):
return self.name, self.email
Resources.py:
from tastypie.resources import ModelResource
from tastypie.authorization import Authorization
from api.models import User
class UserResource(ModelResource):
class Meta:
queryset = User.objects.all()
resource_name = 'user'
authorization = Authorization()
excludes = ['password']
#allowed_methods = ['get']
今の事は、私は郵便配達からのAPIエンドポイントをヒットするたびに、ユーザーが直接作成されていることです。今私が理解していないのは、要求データがリソースに入ってからデータベースに入るのか、それともデータベースに直接入るのかということです。実際には、パスワードをハッシュしてオブジェクトをデータベースに格納するなど、データベースに格納する前にデータに変更を加える必要があります。私はdjangoを初めて使うので、どうすればそれを達成できますか?すべての要求は「/ユーザのエンドポイントで来る場合、中に格納する前に、我々はそれが「データ」変数内のデータだ得ることができますし、我々が望むものは何でも変更今
@user.route('/users', methods=['POST'])
def create_user(user_id):
data = request.get_json(force=True)
# do all the changes we want
user = User(data)
db.session.add(user)
db.session.commit()
:フラスコ内の 同様に、我々のような何かを行うことができますデータベース。しかし、どのようにdjangoでそれを行うtastypie。
すべてのヘルプはあなたがdatabase
に入る前にデータをマッサージする必要がある場合は、Tastypie
がhydrate
とdehydrate
方法の概念を持ってい
上記の解決策を理解していますか@FarhatNawaz – Sanket
ええ、そうです。それはまさに私が探していたものです。ありがとう、ありがとう、仲間 –