[英]django.db.utils.OperationalError: no such column: polls_bands.id
[英]django.db.utils.OperationalError: no such column: users_student.user_id
學生的model有錯誤嗎? 我無法在管理站點中添加學生。 添加此學生 model 后出現此錯誤。
Student model 中的一對一字段沒有問題。 我確實在用戶 model 中有 id
模型.py
class User(AbstractUser):
CATEGORY_CHOICES= [
('STUDENT','STUDENT'),
('TEACHER' ,'TEACHER')
]
name = models.CharField(max_length=100)
email = models.EmailField(max_length=100, unique=True)
password = models.CharField(max_length=100)
category = models.CharField(max_length=100, choices= CATEGORY_CHOICES,default='STUDENT')
registrationDate=models.DateField("RegistrationDate", auto_now_add=True)
profile_pic=models.ImageField(default='default.png',blank=True)
USERNAME_FIELD= 'email'
REQUIRED_FIELDS = ['username']
def __str__(self):
return self.email
class Student(models.Model):
user = models.OneToOneField(User, on_delete = models.CASCADE, primary_key= True)
study_class = models.IntegerField()
bio = models.TextField(blank=True)
追溯:
Environment:
Request Method: POST
Request URL: http://127.0.0.1:8000/admin/users/student/add/
Django Version: 3.1.7
Python Version: 3.9.2
Installed Applications:
['django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'corsheaders',
'users']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware']
Traceback (most recent call last):
File "C:\Users\KAVYA\Documents\Test-series-demo\venv\lib\site-packages\django\db\backends\utils.py", line 84, in _execute
return self.cursor.execute(sql, params)
File "C:\Users\KAVYA\Documents\Test-series-demo\venv\lib\site-packages\django\db\backends\sqlite3\base.py", line 413, in execute
return Database.Cursor.execute(self, query, params)
The above exception (no such column: users_student.user_id) was the direct cause of the following exception:
File "C:\Users\KAVYA\Documents\Test-series-demo\venv\lib\site-packages\django\core\handlers\exception.py", line 47, in inner
response = get_response(request)
File "C:\Users\KAVYA\Documents\Test-series-demo\venv\lib\site-packages\django\core\handlers\base.py", line 181, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\KAVYA\Documents\Test-series-demo\venv\lib\site-packages\django\contrib\admin\options.py", line 614, in wrapper
return self.admin_site.admin_view(view)(*args, **kwargs)
File "C:\Users\KAVYA\Documents\Test-series-demo\venv\lib\site-packages\django\utils\decorators.py", line 130, in _wrapped_view
response = view_func(request, *args, **kwargs)
File "C:\Users\KAVYA\Documents\Test-series-demo\venv\lib\site-packages\django\views\decorators\cache.py", line 44, in _wrapped_view_func
response = view_func(request, *args, **kwargs)
File "C:\Users\KAVYA\Documents\Test-series-demo\venv\lib\site-packages\django\contrib\admin\sites.py", line 233, in inner
return view(request, *args, **kwargs)
File "C:\Users\KAVYA\Documents\Test-series-demo\venv\lib\site-packages\django\contrib\admin\options.py", line 1653, in add_view
return self.changeform_view(request, None, form_url, extra_context)
File "C:\Users\KAVYA\Documents\Test-series-demo\venv\lib\site-packages\django\utils\decorators.py", line 43, in _wrapper
return bound_method(*args, **kwargs)
File "C:\Users\KAVYA\Documents\Test-series-demo\venv\lib\site-packages\django\utils\decorators.py", line 130, in _wrapped_view
response = view_func(request, *args, **kwargs)
File "C:\Users\KAVYA\Documents\Test-series-demo\venv\lib\site-packages\django\contrib\admin\options.py", line 1534, in changeform_view
return self._changeform_view(request, object_id, form_url, extra_context)
File "C:\Users\KAVYA\Documents\Test-series-demo\venv\lib\site-packages\django\contrib\admin\options.py", line 1573, in _changeform_view
form_validated = form.is_valid()
File "C:\Users\KAVYA\Documents\Test-series-demo\venv\lib\site-packages\django\forms\forms.py", line 177, in is_valid
return self.is_bound and not self.errors
File "C:\Users\KAVYA\Documents\Test-series-demo\venv\lib\site-packages\django\forms\forms.py", line 172, in errors
self.full_clean()
File "C:\Users\KAVYA\Documents\Test-series-demo\venv\lib\site-packages\django\forms\forms.py", line 376, in full_clean
self._post_clean()
File "C:\Users\KAVYA\Documents\Test-series-demo\venv\lib\site-packages\django\forms\models.py", line 411, in _post_clean
self.validate_unique()
File "C:\Users\KAVYA\Documents\Test-series-demo\venv\lib\site-packages\django\forms\models.py", line 420, in validate_unique
self.instance.validate_unique(exclude=exclude)
File "C:\Users\KAVYA\Documents\Test-series-demo\venv\lib\site-packages\django\db\models\base.py", line 1009, in validate_unique
errors = self._perform_unique_checks(unique_checks)
File "C:\Users\KAVYA\Documents\Test-series-demo\venv\lib\site-packages\django\db\models\base.py", line 1112, in _perform_unique_checks
if qs.exists():
File "C:\Users\KAVYA\Documents\Test-series-demo\venv\lib\site-packages\django\db\models\query.py", line 809, in exists
return self.query.has_results(using=self.db)
File "C:\Users\KAVYA\Documents\Test-series-demo\venv\lib\site-packages\django\db\models\sql\query.py", line 535, in has_results
return compiler.has_results()
File "C:\Users\KAVYA\Documents\Test-series-demo\venv\lib\site-packages\django\db\models\sql\compiler.py", line 1126, in has_results
return bool(self.execute_sql(SINGLE))
File "C:\Users\KAVYA\Documents\Test-series-demo\venv\lib\site-packages\django\db\models\sql\compiler.py", line 1156, in execute_sql
cursor.execute(sql, params)
File "C:\Users\KAVYA\Documents\Test-series-demo\venv\lib\site-packages\django\db\backends\utils.py", line 98, in execute
return super().execute(sql, params)
File "C:\Users\KAVYA\Documents\Test-series-demo\venv\lib\site-packages\django\db\backends\utils.py", line 66, in execute
return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
File "C:\Users\KAVYA\Documents\Test-series-demo\venv\lib\site-packages\django\db\backends\utils.py", line 75, in _execute_with_wrappers
return executor(sql, params, many, context)
File "C:\Users\KAVYA\Documents\Test-series-demo\venv\lib\site-packages\django\db\backends\utils.py", line 84, in _execute
return self.cursor.execute(sql, params)
File "C:\Users\KAVYA\Documents\Test-series-demo\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\KAVYA\Documents\Test-series-demo\venv\lib\site-packages\django\db\backends\utils.py", line 84, in _execute
return self.cursor.execute(sql, params)
File "C:\Users\KAVYA\Documents\Test-series-demo\venv\lib\site-packages\django\db\backends\sqlite3\base.py", line 413, in execute
return Database.Cursor.execute(self, query, params)
Exception Type: OperationalError at /admin/users/student/add/
Exception Value: no such column: users_student.user_id
如果有人知道為什么會發生這種情況以及我該如何解決這個問題,請提前致謝!
實際上,我認為您創建了 model 但您忘記遷移它。 對於 django 上的遷移,只需按照給定的步驟操作:步驟 1: python manage.py makemigrations
步驟 2: python manage.py migrate
之后,讓我們通過鍵入python manage.py runserver
再次運行代碼並檢查它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.