Я создаю свой первый частично «независимый» проект, не используя учебник. Я создал объект 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)),
],
),
]