python - OperationalError,没有这样的列:hospi_treatmentgiven.patient_id
问题描述
我有三个模型:Patient、Ipd、TreatmentGiven,并且每个模型都使用 ForeignKey 连接到另一个模型,并且迁移也成功运行,但是当我尝试从管理员手动添加 TreatmentGiven 时,我收到 OperationalError,没有这样的列:hospi_treatmentgiven .patient_id
class Patient(models.Model):
firstname = models.CharField(max_length=200)
lastname = models.CharField(max_length=200)
phone = models.CharField(max_length=20)
alternate_phone = models.CharField(max_length=20)
address = models.TextField()
patient_id = models.AutoField(primary_key=True)
gender= models.CharField(max_length=6, choices=Gender)
class Ipd(models.Model):
patient = models.ForeignKey(Patient,on_delete=models.CASCADE,blank=True)
reason_admission = models.CharField(max_length=200, blank=True)
provisional_diagnosis = models.CharField(max_length=200,)
ipd_id = models.AutoField(primary_key=True)
weight = models.CharField(max_length=10,blank = True)
bill_responsible = models.CharField(max_length=100,blank = True)
bill_relation = models.CharField(max_length=100,blank = True)
rooms = models.ForeignKey(Rooms,on_delete=models.CASCADE, blank=True)
date_of_admission = models.DateField(("Date"), default=datetime.date.today)
condition_admission = models.CharField(max_length=20, choices=Admission_condition)
consultant = models.CharField(max_length=20, choices=Consultant)
def __str__(self):
return self.patient.firstname
class TreatmentGiven(models.Model):
patient = models.ForeignKey(Ipd,on_delete = models.CASCADE,default = None)
medicine_name = models.CharField(max_length = 100,null = True)
types_of_doses = models.CharField(max_length = 100,null = True)
route = models.CharField(max_length = 100,null = True)
number_of_days = models.IntegerField(null = True)
错误 :
[15/Aug/2019 09:32:07] "GET /admin/ HTTP/1.1" 200 8532
Internal Server Error: /admin/hospi/treatmentgiven/
Traceback (most recent call last):
File "C:\django-projects\env\lib\site-packages\django\db\backends\utils.py", line 84, in _execute
return self.cursor.execute(sql, params)
File "C:\django-projects\env\lib\site-packages\django\db\backends\sqlite3\base.py", line 383, in execute
return Database.Cursor.execute(self, query, params)
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
response = get_response(request)
File "C:\django-projects\env\lib\site-packages\django\core\handlers\base.py", line 115, in _get_response
response = self.process_exception_by_middleware(e, request)
File "C:\django-projects\env\lib\site-packages\django\core\handlers\base.py", line 113, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\django-projects\env\lib\site-packages\django\contrib\admin\options.py", line 606, in wrapper
return self.admin_site.admin_view(view)(*args, **kwargs)
File "C:\django-projects\env\lib\site-packages\django\utils\decorators.py", line 142, in _wrapped_view
response = view_func(request, *args, **kwargs)
File "C:\django-projects\env\lib\site-packages\django\views\decorators\cache.py", line 44, in _wrapped_view_func
response = view_func(request, *args, **kwargs)
File "C:\django-projects\env\lib\site-packages\django\contrib\admin\sites.py", line 223, in inner
return view(request, *args, **kwargs)
File "C:\django-projects\env\lib\site-packages\django\utils\decorators.py", line 45, in _wrapper
return bound_method(*args, **kwargs)
File "C:\django-projects\env\lib\site-packages\django\utils\decorators.py", line 142, in _wrapped_view
response = view_func(request, *args, **kwargs)
File "C:\django-projects\env\lib\site-packages\django\contrib\admin\options.py", line 1790, in changelist_view
'selection_note': _('0 of %(cnt)s selected') % {'cnt': len(cl.result_list)},
File "C:\django-projects\env\lib\site-packages\django\db\models\query.py", line 256, in __len__
self._fetch_all()
File "C:\django-projects\env\lib\site-packages\django\db\models\query.py", line 1242, in _fetch_all
self._result_cache = list(self._iterable_class(self))
File "C:\django-projects\env\lib\site-packages\django\db\models\query.py", line 55, in __iter__
results = compiler.execute_sql(chunked_fetch=self.chunked_fetch, chunk_size=self.chunk_size)
File "C:\django-projects\env\lib\site-packages\django\db\models\sql\compiler.py", line 1100, in execute_sql
cursor.execute(sql, params)
File "C:\django-projects\env\lib\site-packages\django\db\backends\utils.py", line 99, in execute
return super().execute(sql, params)
File "C:\django-projects\env\lib\site-packages\django\db\backends\utils.py", line 67, in execute
return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
File "C:\django-projects\env\lib\site-packages\django\db\backends\utils.py", line 76, in _execute_with_wrappers
return executor(sql, params, many, context)
File "C:\django-projects\env\lib\site-packages\django\db\backends\utils.py", line 84, in _execute
return self.cursor.execute(sql, params)
File "C:\django-projects\env\lib\site-packages\django\db\utils.py", line 89, in __exit__
raise dj_exc_value.with_traceback(traceback) from exc_value
File "C:\django-projects\env\lib\site-packages\django\db\backends\utils.py", line 84, in _execute
return self.cursor.execute(sql, params)
File "C:\django-projects\env\lib\site-packages\django\db\backends\sqlite3\base.py", line 383, in execute
return Database.Cursor.execute(self, query, params)
django.db.utils.OperationalError: no such column: hospi_treatmentgiven.patient_id
解决方案
在您的TreatmentGiven
班级中,您指向的Ipd
是 ForeignKey。
TreatmentGiven(models.Model):
patient = models.ForeignKey(Ipd,on_delete = models.CASCADE,default = None)
# ^^^
这将创建一个列ipd_id
而不是patient_id
. 我假设你想这样做:
patient = models.ForeignKey(Patient,on_delete = models.CASCADE,default = None)
推荐阅读
- asp.net - 无法在工作项目目录之外发布 ASP.Net Core SPA 应用程序
- node.js - 关于 sequelize 迁移的快速问题
- python-3.x - 如何在 Python 中有效且完全地使用标志从另一个线程中杀死 main() 线程?
- laravel - 从另一个与 Eloquent 和 Laravel 8 的关系中获取关系
- haskell - 如何使用“isPrefixOf”将 Haskell(或)运算符添加到变量中
- python - 如何避免导入模块导入?你能在运行时动态生成 __all__ 吗?
- visual-studio-code - Visual Studio 代码调试器未启动
- php - 如果 12 个月内不是周六或周日,则显示最后一个工作日
- botframework - 如何使用 Bot Framework Composer 在 MS Teams 中捕获用户电子邮件
- python - 获取文件中的重复行