我正在用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做到這一點。
任何幫助,將不勝感激
你明白上面的解決方案@FarhatNawaz – Sanket
是的,我這樣做。這正是我所期待的。謝謝 –