首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >需要ID属性名称的Vapor 4关系和模型

需要ID属性名称的Vapor 4关系和模型
EN

Stack Overflow用户
提问于 2020-06-17 04:30:16
回答 1查看 175关注 0票数 0

我正在尝试在应用程序(Vapor 4)中设置育儿功能,虽然这是可以实现的,但我遇到了这个问题,或者至少遇到了一个限制,导致模型中使用的属性名称意义较小。

Vapor 4要求将@ID属性命名为'id‘(var id:...),而在以前的版本中,属性名称是可定义的,因此更有意义。

例如,用户表:我们的用户数据使用用户名作为唯一键(不是主键),因此用户模型是这样定义的:

代码语言:javascript
运行
AI代码解释
复制
  // 'Unique key for the record.'
  @ID(custom: "sysid", generatedBy: .database)
  var id: Int?

  // Unique login name 
  @Field(key: "username")
  var username: String?

  // Password for this login.
  @Field(key: "password")
  var password: String
  ...

这是有意义的,并且是可读的,并且在应用程序中使用模型的任何地方,开发人员都知道Id字段是sysid,而用户名是用户名。

规则和配置文件表中的外键使用用户名作为外键(由于遗留原因)。然而,要改变它,数据库和应用程序目前是不可能的。

自从最初的实现以来,我一直在阅读并意识到使用关系(而不是过滤器和连接)的好处。

要在Vapor 4中使用关系,我必须将模型定义更改为:

代码语言:javascript
运行
AI代码解释
复制
  // 'Unique key for the record.'
  @Field(key: "sysid")
  var sysid: Int?

  // Unique login name 
  @ID(key: "username")
  var id: String?

  // Password for this login.
  @Field(key: "password")
  var password: String
  ...

我的模型定义没有那么有意义(尽管它确实可以工作):

当然,这意味着现在需要将代码.username更改为.id,这样就不那么容易理解了。

在Vapor 3中,我们可以将ID属性名称定义为任何名称。如果Fluent/Vapor 4像以前的版本一样允许自定义属性名称,事情会容易得多。

我想知道是否有人遇到过这个“问题”?或者有一个解决办法,允许模型继续使用有意义的名称,同时仍然允许为人父母的工作正常进行。

我使用了这个简单的用户数据作为示例,但其他人肯定会使用不同的/有意义的列名,这会导致我的..烦人?

如有任何指导或想法,将不胜感激

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-25 12:13:02

Fluent的relationship属性包装器都基于在id属性下定义的关系。这允许您只使用父ID创建子ID,而不必首先在DB中查找父ID,等等。

如果您想使用ID以外的其他东西,则需要手动执行查询(对于父级/子级相对简单),或者复制属性包装器并选择不同的属性。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62421519

复制
相关文章
axios django CSRF 403错误
使用axios直接post django的接口的时候会提示CSRF 403错误 可以在post的data中转入csrftoken 也可以给单个方法关闭 from django.views.decorators.csrf import csrf_exempt,csrf_protect @csrf_exempt def test(request): pass
小贝壳
2020/03/05
1.4K0
Nginx禁止访问该用401还是403
之前在某些文章中看到建议在nginx配置中用return401而不用403,也没说具体原因,最近这不闲了,突然想起来,google了半天也没有任何相关的信息(可能不太会用google),没办法,只能自己实践看看了
李俊鹏
2020/06/15
3.6K0
Nginx禁止访问该用401还是403
django 主动抛出 403 异常
* 网站名称:obaby@mars * 网址:https://h4ck.org.cn/ * 本文标题: 《django 主动抛出 403 异常》 * 本文链接:https://h4ck.org.cn/2018/12/django-%e4%b8%bb%e5%8a%a8%e6%8a%9b%e5%87%ba-403-%e5%bc%82%e5%b8%b8/ * 转载文章请标明文章来源,原文标题以及原文链接。请遵从 《署名-非商业性使用-相同方式共享 2.5 中国大陆 (CC BY-NC-SA 2.5 CN) 》许可协议。
obaby
2023/02/24
7970
Django 自定义404 403 500
1、创建templates文件夹 在文件夹下创建404.html/403.html/500.html文件 2、settings.py DEBUG = False # 关闭Debug ... TEMPLATES = [ { ... 'DIRS': ['templates/'], # 配置tamplates文件路径 ... }, ] ... ALLOWED_HOSTS = [ '192.168.1.12', # 配置allowrd_hosts ] 3、views.py from django.shortcuts import render
用户5760343
2022/05/14
4610
Django提交表单时遇到403错误:CSRF verification failed
django 提交表单 提示403:CSRF verification failed 后台日志: UserWarning: A {% csrf_token %} was used in a template, but the context did not provide the value. This is usually caused by not using RequestContext. "A {% csrf_token %} was used in a template, but the
程序员同行者
2018/07/02
1.9K0
Django自定义全局403、404、500错误页面
使用{{ exception }}即可捕获异常信息,转换为html代码{{ exception|safe }},可以根据这些代码中的id等,得到跳转的链接,参考
菲宇
2019/07/31
1.6K0
python测试开发django-66.图片403forbidden
用 django 开发 web 页面,在 HTML 页面上添加图片时,发现本地图片可以正常显示,但是添加一个互联网的图片,却不能正常显示。
上海-悠悠
2019/11/14
6380
【译】HTTP错误码403禁止:意味着什么,怎么修复它
在上网的时候,收到任何的错误码都是让人沮丧的体验。尽管我们已经习惯于404页面找不到,我们在页面迷失的时候,看到可爱的占位符来娱乐我们是很常见的事情了。但是有种更令人困惑的403错误:禁止响应。
Jimmy_is_jimmy
2020/01/03
30.9K0
Django 获取请求参数
  我们在使用python做接口测试的时候,通常使用的是requests库。而大家都知道还有一个request东西,很多人对requests与request两个东西傻傻分不清。下面我简单来介绍一下。
全栈测试开发日记
2023/02/02
2.8K0
Django 获取请求参数
Springboot 403
如果同时进行了filter和CorsConfiguration的配置,OPTIONS请求会返回403,并且控制台提示 Itdoesnothave HTTP ok status.非常恶心。 网上没有找到相应的解释。
喜欢天文的pony站长
2020/06/29
2K0
Springboot 403
Gitlab 403 forbidden
搭建的Gitlab。但今天打开页面的时候显示的是空白页面,上面还有一次文本Forbidden。
匿名用户的日记
2021/12/14
1.4K0
Gitlab 403 forbidden
React saga_react获取子组件ref
React的作用View层次的前端框架,自然少不了很多中间件(Redux Middleware)做数据处理, 而redux-saga就是其中之一,目前这个中间件在网上的资料还是比较少,估计应用的不是很广泛,但是如果使用得当,将会事半功倍的效果,下面仔细介绍一个这个中间件的具体使用流程和应用场景。
全栈程序员站长
2022/09/27
4.6K0
React saga_react获取子组件ref
Django获取HTTP头信息
头信息在HttpRequest对象的META属性中。具体可以查看HttpRequest常用属性。 例如:
zy010101
2021/11/02
1K0
django 获取 request 的 url
    print(request.get_full_path())                             ^ SyntaxError: invalid character in identifier
卓越笔记
2023/02/18
2.1K0
前端React后端Django 导出Excel
Dajngo查询数据,查询出来之后生成Excel保存本地 class ExportExcel(APIView): def post(self, request, *args, **kwargs): export_time = request.data.get('startEndTime') user_id = request.data.get('user_id') if len(user_id) == 1 and 0 in user_id:
Wyc
2021/07/08
6730
Django REST + React + Redux 上传文件
环境 后端: Django==2.0.5 djangorestframework==3.8.2 前端: "react": "^16.3.2" "react-redux": "^5.0.7" "redux": "^4.0.0" 后端 Models: class Supervise(models.Model): ... photo = models.ImageField(upload_to='media/supervise/',null=True,blank=True) # 照片附件 .
fanzhh
2019/08/20
1.2K0
SpringSecurity 403 forbidden
springboot项目,涉及跨域,跨域问题解决后,整合权限SpringSecurity。 遇到问题:get请求可以正常通过;post请求的OPTIONS请求可以通过,但是post请求403 forbidden 报错。
IT云清
2021/12/10
1.7K0
nginx 403 forbidden
nginx django .conf 配置 nginx python Django 集成总结之-nginx配置
onety码生
2018/11/21
3.2K0
Django的POST请求报403,及四种解决方法
Django默认开启防止csrf(跨站点请求伪造)攻击,在post请求时,没有上传 csrf字段,导致校验失败,报403错误
用户1558882
2018/10/10
15.8K1
Django的POST请求报403,及四种解决方法
点击加载更多

相似问题

比较字符串:文件和列表

11

LINQ -比较列表对象和字符串列表

22

比较元素列表和字符串数组

10

比较列表和列表

211

haskell理解列表,比较字符串和列表,从列表创建字符串列表和值字符串列表。

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档