Джанго определил модель, но поле модели не работает - PullRequest
0 голосов
/ 01 октября 2019

Я использую 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    |                |
+---------------------+--------------+------+-----+---------+----------------+

Так в чем же проблема?

1 Ответ

0 голосов
/ 01 октября 2019

В вашей таблице базы данных отсутствуют некоторые поля, поскольку в некоторых полях в конце отсутствуют скобки, например, первое поле должно быть sponsor = models.IntegerField(), а не sponsor = models.IntegerField

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...