django - 使用 users 表,导致错误
问题描述
在 Django (2.x) 我有一个输入表单,模型在这里:
from django.db import models
from django.contrib.auth.models import User
from django.conf import settings
class Sample(models.Model):
sample_id = models.AutoField(primary_key=True)
area_easting = models.IntegerField()
area_northing = models.IntegerField()
context_number = models.IntegerField()
sample_number = models.IntegerField()
# taken_by = models.IntegerField()
taken_by = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete = models.PROTECT)
def __str__(self):
return str(self.sample_id)
class Meta:
db_table = 'samples\".\"sample'
#ordering = ["sample_id"]
managed = False
#verbose_name_plural = "samples"
这按预期工作,用户名列表下拉(而我想格式化 - 名字姓氏)。但是,当我返回主查看页面时,我看到了一个错误。
django.db.utils.ProgrammingError: column sample.taken_by_id does not exist
LINE 1: ...text_number", "samples"."sample"."sample_number", "samples"....
^
HINT: Perhaps you meant to reference the column "sample.taken_by".
显然 Django 正在将_id
导致错误的表名添加到表名中,我希望它是一个外键。
任何想法如何纠正这种行为?
解决方案
db_column
您可以通过属性显式设置基础 db 列:
taken_by = models.ForeignKey(settings.AUTH_USER_MODEL, db_column='taken_by', on_delete=models.PROTECT)
推荐阅读
- c++ - 如何对派生类进行限制?
- python - Python3 困境(列表、递归、默认参数)
- ruby-on-rails - rails 简单形式的日期输入 - 单独的整数输入
- css - 如何获得所需的 CSS 元素形状
- sql - 在 MS SQL 中搜索 XML、Base64、UTF-8 字符串?
- html - 使用Swift for MacOS加载页面后如何在WebView中显示页面的html内容?
- cpanel - 将插件域置于 public_html 之外的任何安全问题
- c# - Azure API调用后获取GetResultCore(Boolean waitCompletionNotification)异常
- php - Laravel 多对多关系检查与中间表
- html - 我想从 www.imsdb.com/scripts/*.html 中提取电影脚本