Django: OperationalError Нет такого столбца - PullRequest
0 голосов
/ 28 мая 2020

Я создаю свой первый частично «независимый» проект, не используя учебник. Я создал объект Event, которому пользователь мог присвоить название, date_due и описание. В настоящее время я пытаюсь добавить к нему значение автора, которое будет содержать профиль пользователя. Я использую модель пользователя django .contrib.auth.models.

Я не совсем уверен в том, что делаю, мне просто нужна помощь по моему проекту в целом. Я довольно молод в старшей школе и сейчас чувствую себя потерянным. Очень признателен, спасибо.

Это мой блог / models.py, содержащий мою модель событий.

from django.db import models
from django.contrib.auth.models import User

# Create your models here.


class Event(models.Model):
    title = models.CharField(max_length=100)
    date_due = models.DateTimeField(auto_now_add=False, auto_now=False, blank=True)
    description = models.TextField()
    author = models.ForeignKey(User, on_delete=models.CASCADE)

Это мой файл Blog / forms.py для объекта Event.

from django import forms
from .models import Event


class EventCreationForm(forms.ModelForm):

    class Meta:
        model = Event
        fields = ['title', 'date_due', 'description']

Это мой блог / views.py, в котором отображается форма события, а также список всех событий пользователя.

from django.shortcuts import render
from .models import Event
from .forms import EventCreationForm

# Create your views here.


def CalendarView(request):
    if request.method == "POST":
        form = EventCreationForm(request.POST)
        if form.is_valid():
            form.save()
    else:
        form = EventCreationForm

    context = {
        'events': Event.objects.all(),
        'form': form
    }

    return render(request, 'Blog/calendar.html', context)

Хотя я не уверен, что это необходимо, я просто убеждаюсь, что получаю достаточно, чтобы предоставить.

Это мой User / views.py, файл моих представлений в моем приложении User, который заботится о пользователях / профилях.

from django.shortcuts import render, redirect
from .forms import UserRegisterForm
from django.contrib.auth.decorators import login_required

# Create your views here.


def register(request):
    if request.method == 'POST':
        form = UserRegisterForm(request.POST)  # saves the form inputs from request.POST
        if form.is_valid():
            form.save()

            return redirect('login')
    else:
        form = UserRegisterForm()

    return render(request, 'User/register.html', {'form': form})


@login_required
def profile(request):

    return render(request, 'User/profile.html')

Это мой User / models.py, моя действительно простая модель User,

from django.db import models
from django.contrib.auth.models import User

# Create your models here.


class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)

My User / forms.py, просто моя регистрационная форма, которую я создал the django UserCreationForm,

from django.contrib.auth.models import User
from django.contrib.auth.forms import UserCreationForm


class UserRegisterForm(UserCreationForm):

    class Meta:
        model = User  # model that will be affected is the user model
        fields = ['username', 'first_name', 'last_name', 'password1', 'password2']

Пожалуйста, попросите у меня все, что вам нужно, чтобы помочь, я готов на все. Я очень увлечен кодированием и потратил слишком много времени, пытаясь разобраться в этом самостоятельно. Мне нужна помощь. Первый вопрос о переполнении стека, кстати, дайте мне советы.

Ошибка с полным отслеживанием:

  File "C:\Users\User\PycharmProjects\FirstProject\venv\lib\site-packages\django\db\backends\utils.py", line 86, in _execute
    return self.cursor.execute(sql, params)
  File "C:\Users\User\PycharmProjects\FirstProject\venv\lib\site-packages\django\db\backends\sqlite3\base.py", line 396, in execute

    return Database.Cursor.execute(self, query, params)
sqlite3.OperationalError: no such column: Blog_event.author_id

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\User\PycharmProjects\FirstProject\venv\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
    response = get_response(request)
  File "C:\Users\User\PycharmProjects\FirstProject\venv\lib\site-packages\django\core\handlers\base.py", line 115, in _get_response

    response = self.process_exception_by_middleware(e, request)
  File "C:\Users\User\PycharmProjects\FirstProject\venv\lib\site-packages\django\core\handlers\base.py", line 113, in _get_response

    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "C:\Users\User\PycharmProjects\FirstProject\MyProject\Blog\views.py", line 29, in CalendarView
    return render(request, 'Blog/calendar.html', context)
  File "C:\Users\User\PycharmProjects\FirstProject\venv\lib\site-packages\django\shortcuts.py", line 19, in render
    content = loader.render_to_string(template_name, context, request, using=using)
  File "C:\Users\User\PycharmProjects\FirstProject\venv\lib\site-packages\django\template\loader.py", line 62, in render_to_string
    return template.render(context, request)
  File "C:\Users\User\PycharmProjects\FirstProject\venv\lib\site-packages\django\template\backends\django.py", line 61, in render
    return self.template.render(context)
  File "C:\Users\User\PycharmProjects\FirstProject\venv\lib\site-packages\django\template\base.py", line 171, in render
    return self._render(context)
  File "C:\Users\User\PycharmProjects\FirstProject\venv\lib\site-packages\django\template\base.py", line 163, in _render
    return self.nodelist.render(context)
  File "C:\Users\User\PycharmProjects\FirstProject\venv\lib\site-packages\django\template\base.py", line 936, in render
    bit = node.render_annotated(context)
  File "C:\Users\User\PycharmProjects\FirstProject\venv\lib\site-packages\django\template\base.py", line 903, in render_annotated
    return self.render(context)
  File "C:\Users\User\PycharmProjects\FirstProject\venv\lib\site-packages\django\template\loader_tags.py", line 150, in render
    return compiled_parent._render(context)
  File "C:\Users\User\PycharmProjects\FirstProject\venv\lib\site-packages\django\template\base.py", line 163, in _render
    return self.nodelist.render(context)
  File "C:\Users\User\PycharmProjects\FirstProject\venv\lib\site-packages\django\template\base.py", line 936, in render
    bit = node.render_annotated(context)
  File "C:\Users\User\PycharmProjects\FirstProject\venv\lib\site-packages\django\template\base.py", line 903, in render_annotated
    return self.render(context)
  File "C:\Users\User\PycharmProjects\FirstProject\venv\lib\site-packages\django\template\loader_tags.py", line 62, in render
    result = block.nodelist.render(context)
  File "C:\Users\User\PycharmProjects\FirstProject\venv\lib\site-packages\django\template\base.py", line 936, in render
    bit = node.render_annotated(context)
  File "C:\Users\User\PycharmProjects\FirstProject\venv\lib\site-packages\django\template\base.py", line 903, in render_annotated
    return self.render(context)
  File "C:\Users\User\PycharmProjects\FirstProject\venv\lib\site-packages\django\template\defaulttags.py", line 166, in render
    len_values = len(values)
  File "C:\Users\User\PycharmProjects\FirstProject\venv\lib\site-packages\django\db\models\query.py", line 258, in __len__
    self._fetch_all()
  File "C:\Users\User\PycharmProjects\FirstProject\venv\lib\site-packages\django\db\models\query.py", line 1261, in _fetch_all
    self._result_cache = list(self._iterable_class(self))
  File "C:\Users\User\PycharmProjects\FirstProject\venv\lib\site-packages\django\db\models\query.py", line 57, in __iter__
    results = compiler.execute_sql(chunked_fetch=self.chunked_fetch, chunk_size=self.chunk_size)
  File "C:\Users\User\PycharmProjects\FirstProject\venv\lib\site-packages\django\db\models\sql\compiler.py", line 1151, in execute_
sql
    cursor.execute(sql, params)
  File "C:\Users\User\PycharmProjects\FirstProject\venv\lib\site-packages\django\db\backends\utils.py", line 100, in execute
    return super().execute(sql, params)
  File "C:\Users\User\PycharmProjects\FirstProject\venv\lib\site-packages\django\db\backends\utils.py", line 68, in execute
    return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
  File "C:\Users\User\PycharmProjects\FirstProject\venv\lib\site-packages\django\db\backends\utils.py", line 77, in _execute_with_w
rappers
    return executor(sql, params, many, context)
  File "C:\Users\User\PycharmProjects\FirstProject\venv\lib\site-packages\django\db\backends\utils.py", line 86, in _execute
    return self.cursor.execute(sql, params)
  File "C:\Users\User\PycharmProjects\FirstProject\venv\lib\site-packages\django\db\utils.py", line 90, in __exit__
    raise dj_exc_value.with_traceback(traceback) from exc_value
  File "C:\Users\User\PycharmProjects\FirstProject\venv\lib\site-packages\django\db\backends\utils.py", line 86, in _execute
    return self.cursor.execute(sql, params)
  File "C:\Users\User\PycharmProjects\FirstProject\venv\lib\site-packages\django\db\backends\sqlite3\base.py", line 396, in execute

    return Database.Cursor.execute(self, query, params)
django.db.utils.OperationalError: no such column: Blog_event.author_id

Опять же, я новичок в этом, поэтому любая помощь будет принята с благодарностью.

файл блога / 0001_initial.py,

from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion


class Migration(migrations.Migration):

    initial = True

    dependencies = [
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
    ]

    operations = [
        migrations.CreateModel(
            name='Event',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('title', models.CharField(max_length=100)),
                ('date_due', models.DateTimeField(blank=True)),
                ('description', models.TextField()),
                ('author', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
            ],
        ),
    ]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...