Я использую Django 2.2, MySQL 8.0. Когда я определяю модель, я создаю некоторые свойства класса и их поля. После сохранения операции PyCharm не сообщил об ошибке.
from django.db import models
from django_mysql.models import JSONField
class Activity(models.Model):
sponsor = models.IntegerField
certificateOrNot = models.BooleanField
sponsorWay = models.SmallIntegerField
activityName = models.CharField(max_length=60)
activityPhoto = models.URLField(max_length=255)
prizeInfo = JsonField
activityDetails = models.IntegerField
startTime = models.DateField
endTime = models.DateField
conditionType = models.SmallIntegerField
conditionInfo = models.SmallIntegerField
sponsorPhoneNumber = models.CharField(max_length=20)
sponsorNickName = models.CharField(max_length=40)
sponsorWechatNumber = models.CharField(max_length=255)
participantAttention = models.BooleanField
shareJurisdiction = models.BooleanField
allowQuitOrNot = models.BooleanField
inviateFriends = models.BooleanField
inputCommandOrNot = models.BooleanField
participateWay = models.BooleanField
winnerList = models.BooleanField
participantDrawNumber = models.SmallIntegerField
def __str__(self):
return self.activityName
Затем я синхронизирую базу данных.
python3 manage.py makemigrations luckyDraw_1
python3 manage.py migrate
На этом этапе MySQL может успешно создать таблицу, но поля в таблице не соответствуют моим ожиданиям.
+---------------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| activityName | varchar(60) | NO | | NULL | |
| activityPhoto | varchar(255) | NO | | NULL | |
| sponsorPhoneNumber | varchar(20) | NO | | NULL | |
| sponsorNickName | varchar(40) | NO | | NULL | |
| sponsorWechatNumber | varchar(255) | NO | | NULL | |
+---------------------+--------------+------+-----+---------+----------------+
Так в чем же проблема?