我正在嘗試為我的 Django REST 框架創(chuàng)建一個(gè)用戶模型,但遺憾的是,我遇到了一些意想不到的困難:當(dāng)我運(yùn)行“python manage.py makemigrations”時(shí),一切正常,但是,當(dāng)我嘗試運(yùn)行遷移時(shí),我遇到了這個(gè)錯(cuò)誤'return Database.Cursor.execute(self, query) django.db.utils.OperationalError: near "None": syntax error'。我已經(jīng)嘗試更改 models.py 中的代碼,但它仍然產(chǎn)生相同的結(jié)果,即使我將用戶模型類設(shè)置為只有一個(gè) id 字段。我正在使用 Django 版本 1.11.17 和 drf 版本 3.9.0模型.py:class User(models.Model): id = models.AutoField(primary_key=True) email = models.CharField(unique=True, null=False, max_length=200) phone = models.IntegerField(unique=True, null=False) first_name = models.CharField(null=False, max_length=200) last_name = models.CharField(null=False, max_length=200) is_active = models.BooleanField(_('active'), default=False) last_seen = models.DateTimeField(auto_now=True, null=True) updated_at = models.DateTimeField(auto_now=True, null=True) created_at = models.DateTimeField(auto_now_add=True, null=True) avatar = models.CharField(null=True)遷移/0001_initial.py:class Migration(migrations.Migration): initial = True dependencies = [ ] operations = [ migrations.CreateModel( name='User', fields=[ ('id', models.AutoField(primary_key=True, serialize=False)), ('email', models.CharField(max_length=200, unique=True)), ('phone', models.IntegerField(unique=True)), ('first_name', models.CharField(max_length=200)), ('last_name', models.CharField(max_length=200)), ('last_seen', models.DateTimeField(auto_now=True, null=True)), ('updated_at', models.DateTimeField(auto_now=True, null=True)), ('created_at', models.DateTimeField(auto_now_add=True, null=True)), ('avatar', models.CharField(null=True)), ], ),]
1 回答

慕尼黑的夜晚無(wú)繁華
TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超6個(gè)贊
問題最終是我沒有為 avatar 字段指定 max_length 因此由 django 生成的結(jié)果查詢是
CREATE TABLE "user" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "email" varchar(200) NOT NULL UNIQUE, "phone" integer NOT NULL UNIQUE, "first_name" varchar(200) NOT NULL, "last_name" varchar(200) NOT NULL, "is_active" bool NOT NULL, "last_seen" datetime NULL, "updated_at" datetime NULL, "created_at" datetime NULL, "avatar" varchar(None) NULL);
并且 varchar(None) 破壞了語(yǔ)法。你知道的越多。
添加回答
舉報(bào)
0/150
提交
取消