4

Djangoプロジェクト用にTastypieAPIを作成しています。私は次のようなdjangomodels.pyのモデルを持っています:

class User(models.Model):
    nick = models.CharField(max_length = 255)
    email = models.CharField(max_length = 511)
    password = models.CharField(max_length = 63)
    reg_date = models.DateTimeField('register date')
    od_user = models.CharField(max_length = 1024)

    def __unicode__(self):
        aux = self.nick + " " + self.email
        return aux

また、TastypieAPIのModelResourceも次のようになっています。

class UserResource(ModelResource):
   class Meta:
      queryset = User.objects.all()
      resource_name = 'user'
      excludes = ['password']
      allowed_methods = ['get', 'post', 'put', 'delete']
      authorization = Authorization()
      always_return_data=True

   def obj_create(self, bundle, request=None, **kwargs):
      username, password = bundle.data['nick'], bundle.data['password']
      try:
          bundle.obj = User(nick, "email@test", password,timezone.now(),"od_test")
          bundle.obj.save()
      except IntegrityError:
          raise BadRequest('That username already exists')
      return bundle

しかし、これは機能しません。プログラムでdjango-tastypieAPIを使用してユーザーを作成または登録する方法を調べました。しかし、データベースにユーザーを作成する方法がわかりません。

私が使う:

   curl -v -H "Content-Type: application/json" -X POST --data '{"nick":"test2", "password":"alparch"}' http://127.0.0.1:8000/api/v1/user/?format=json

POSTメソッドを実行します。

Tastypie APIを使用してオブジェクトを作成するにはどうすればよいですか?

4

1 に答える 1

2

次のように、位置引数を使用してユーザーを作成することはできません。

User(nick, "email@test", password,timezone.now(),"od_test")

代わりに、キーワード引数を使用する必要があります。

User(nick=nick,
     email="email@test",
     ...
     )
于 2012-08-16T11:44:06.987 に答える