首页 > 解决方案 > 问题创建 Django 模型

问题描述

我正在尝试通过 Django 模型创建一些新表,但是,每次我尝试Migrate更改时,都会出现以下错误。它说这是一个语法错误,但我无法检测到。我做错了什么?

Operations to perform:
  Apply all migrations: RegistrarProyecto, admin, auth, contenttypes, sessions, vuelos
Running migrations:
  Applying RegistrarProyecto.0008_auto_20210621_1223...Traceback (most recent call last):
  File "C:\Users\pansh\AppData\Local\Programs\Python\Python39\lib\site-packages\django\db\backends\utils.py", line 84, in _execute
    return self.cursor.execute(sql, params)
  File "C:\Users\pansh\AppData\Local\Programs\Python\Python39\lib\site-packages\django\db\backends\sqlite3\base.py", line 423, in execute
    return Database.Cursor.execute(self, query, params)
sqlite3.OperationalError: near ")": syntax error

模型.py

from django.db import models
from django.db.models.fields import CharField
from django.db.models.fields import IntegerField


# Create your models here.

class Proyecto(models.Model):
    NombreProyecto = models.CharField(max_length = 64)
    ResponsableProyecto = models.CharField(max_length= 64)
    DescripcionProyecto = models.CharField(max_length = 64)

    def __str__(self):
        return f"{self.NombreProyecto}"

视图.py

from django.http.response import HttpResponse
from django.shortcuts import render
from django.shortcuts import redirect
from .models import Proyecto
# Create your views here.


def index (request):

    return render (request, "RegistrarProyecto/index.html", {
        "Proyecto": Proyecto.objects.all()
    })

def registro(request):
  if request.method == 'POST':

      NombreProyecto = request.POST.get('NombreProyecto')
      ResponsableProyecto = request.POST.get('ResponsableProyecto')
      DescripcionProyecto = request.POST.get('DescripcionProyecto')

      Proyecto.objects.create(NombreProyecto=NombreProyecto,ResponsableProyecto=ResponsableProyecto,DescripcionProyecto=DescripcionProyecto)
      return redirect("/RegistrarProyecto") 
        

  return render(request, 'RegistrarProyecto/Registro.html')

def financiamiento(request):
    return render(request,"RegistrarProyecto/financiamiento.html")

RegistrarProyecto/0008_auto_20210621_1223.py

这是迁移生成的代码

# Generated by Django 3.2.3 on 2021-06-21 16:23

from django.db import migrations, models


class Migration(migrations.Migration):

    dependencies = [
        ('RegistrarProyecto', '0007_alter_financiamiento_proyecto'),
    ]

    operations = [
        migrations.CreateModel(
            name='fight',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('Nombre', models.CharField(max_length=64)),
                ('Edad', models.IntegerField()),
            ],
        ),
        migrations.RemoveField(
            model_name='financiamiento',
            name='Proyecto',
        ),
        migrations.DeleteModel(
            name='Evaluador',
        ),
        migrations.DeleteModel(
            name='Financiamiento',
        ),
        migrations.DeleteModel(
            name='Proyecto',
        ),
    ]

标签: pythondjango

解决方案


  1. migrations从项目根目录中删除您的文件夹。
  2. 创建一个新migrations文件夹。
  3. 在该文件夹中添加一个__init__.py空文件。
  4. 运行python manage.py makemigrationspython manage.py migrate

这只会创建一个新的迁移文件。


推荐阅读