こんにちは私はdjangoとpythonを初めて使用します。User
djangoモデルを拡張してモデルにメソッドを追加したいので、このメソッドをビューからcreate_user
呼び出します。create_user
しかし、エラーメッセージが表示されました。
私のモデル:
from django.db import models
from django.contrib.auth.models import User
class Basic(models.Model):
user = models.OneToOneField(User)
gender = models.CharField(max_length = 10)
def create_ck_user(acc_type, fb_id,fb_token):
# "Create a user and insert into auth_user table"
user = User.objects.create_user(acc_type,fb_id,fb_token)
user.save()
class External(models.Model):
user = models.OneToOneField(Basic)
external_id = models.IntegerField()
locale = models.CharField(max_length = 40)
token = models.CharField(max_length = 250)
そして、ビューで、私はこのようにsthをしました:
Basic.create_ck_user('acc_type' = 'fb', 'fb_id' = fb_id, 'fb_token' = fb_token)
エラーは次のことを示しています。
keyword can't be an expression (views.py, Basic.objects.create_ck_user('acc_type' = 'fb', 'fb_id' = fb_id, 'fb_token' = fb_token))
編集:@classmehtodを追加した後、view.pyを次のように変更します。
...
if (request.method == 'POST'):
acc_type = request.POST.get('acc_type')
fb_id = request.POST.get('fb_id')
fb_token = request.POST.get('fb_token')
Basic.create_ck_user(acc_type,fb_id,fb_token)
...
エラーメッセージは次のことを示しています。
create_ck_user()は正確に3つの引数を取ります(4つ指定)
エラーの詳細を確認しました。「request」変数が含まれていますが、、、およびの3つの変数を渡すacc_type
だけfb_id
ですfb_token
。
何か案は?