簡體   English   中英

django.db.utils.OperationalError:沒有這樣的列:users_student.user_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM