V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  Zhuzhuchenyan  ›  全部回复第 6 页 / 共 9 页
回复总数  178
1  2  3  4  5  6  7  8  9  
2021-04-05 16:52:07 +08:00
回复了 endpain 创建的主题 Python 关于 Django drf 的反序列化一对多字段问题
不好意思,不知道为啥没有出现 readme 排版,难道是我使用姿势错了,
代码缩进都不见了,凑合着看看吧,这个问题只要重新 create 方法一般都能解决
2021-04-05 16:49:52 +08:00
回复了 endpain 创建的主题 Python 关于 Django drf 的反序列化一对多字段问题
根据官方文档对于 nested serialization 的描述,详见 https://www.django-rest-framework.org/api-guide/serializers/#writing-create-methods-for-nested-representations

“If you're supporting writable nested representations you'll need to write .create() or .update() methods that handle saving multiple objects.”

所以光有 depth=1 是不够的,需要重写对应的`create`方法

正好有空,给你个最低限度能用的代码

```python

# models.py
class Author(models.Model):
name = models.CharField(max_length=128)

def __str__(self):
return self.name


class Book(models.Model):
name = models.CharField(max_length=128)
author = models.ForeignKey(to=Author, related_name='books', on_delete=models.CASCADE)

def __str__(self):
return self.name

# serializers.py

class AuthorSerializer(serializers.ModelSerializer):
class Meta:
model = Author
fields = '__all__'


class BookSerializer(serializers.ModelSerializer):
author = AuthorSerializer()

class Meta:
model = Book
fields = '__all__'

def create(self, validated_data):
author_data = validated_data.pop('author')
author = Author.objects.get(name=author_data['name'])
return Book.objects.create(author=author, **validated_data)

# viewset.py

class BookViewSet(ModelViewSet):
queryset = Book.objects.all()
serializer_class = BookSerializer
pagination_class = None
http_method_names = ['get', 'post']

```

```
# 示例代码 curl
curl --location --request POST '{root_url}/books/' \
--header 'Content-Type: application/json' \
--data-raw '{
"name": "Book 2",
"author": {
"name": "YYH"
}
}'
```

需要注意的是即使 author 里面传递了 ID,这个 ID 也不会出现在 validated_data 中,这个算是 drf 的一个局限性。

环境:
djangorestframework==3.12.2
Django==3.1.3
就职于游戏公司,简单的谈一点自己看法

主程的技术实力非常强,后期大规模场景的优化在业界也是做得非常好的。
除了技术硬实力,美工的水平也完全能 Hold 住这样的游戏风格。

就难度而言,
第零个难点在于知道要做什么,主创的技术实力是否能 HOLD 住场景
第一个难点在于技术团队的组成,你要能凑齐这样一个牛逼主程加上合适的美术相关人员,这其实没想象的那么简单。
第二个难点在于长期开发中的项目管理和规划,看过一点访谈,似乎主创从一开始对项目的把握就十分明确
第三个难点在于团队士气,能耐得住寂寞开发一款题材偏小众的游戏
第四个难点在于美术,包括如何把握美术风格,美术团队和技术团队的协调,如何把合适的工程量外包,如果保证外包成品的素质
最后就是团队的代码实力是否能撑得起复杂的项目了,开发流程,测试流程是否能 HOLD 住一款商业级的项目了。
2021-02-28 22:03:47 +08:00
回复了 lsbbd 创建的主题 Apple 16 寸 MacBook Pro 触摸板翘起
大概率是电池鼓包,保修期内应该会免费换。
可以顺便看看底部是不是水平的。
2021-02-28 01:42:37 +08:00
回复了 Phishion 创建的主题 服务器 请问一般开启 HTTPS 延迟增加多少正常?
可以看一下直接 ping 机器的延迟是多少,或者 tcp ping 一下了解一下平均 RTT 是多少,开启 HTTPS 加密带来的性能损失和网络延迟相比可以先忽略

HTTP 理想情况下只需要一次 RTT 的时间就可以发送数据,
HTTPS 理想情况下则多得多,TLS1.2 需要 4 个 RTT 时间,TLS1.3 需要 3 个 RTT 时间。

所以如果本身延迟就很高,那么开启 HTTPS 带来的延迟增长的确也会很高。

是否开启 HTTP2 对解决这个问题没啥帮助,但是对于网站的基准性能会有比较大的提升。
ssl_prefer_server_ciphers 这个选项只是推荐客户端选定你指定的 cipher,毕竟某些 cipher 过时,慢,并且有可能不安全
如果你的证书的 OCSP 服务器没有被墙,那么是否开启 ssl_stapling 对这个问题没有帮助。

我才疏学浅,唯一能建议的是开启 ssl session 重用,SSL-Session-Cache,这个能帮你节省 1 个 RTT 的时间。
即使 JAVA 中闭包想要用到类似题干中的 data 变量也是需要把 data 变量预先标记为 final 的吧。

这个更多感觉是语言设计上的取舍,对于较为基本数据类型,闭包中到底捕获的是值还是引用。JAVA 就强迫让你写出不会犯错的代码,但同时要达成类似的事情(妄图在闭包中修改捕获的变量的值)就需要用引用类型包装一下这个变量。
2021-02-19 19:01:32 +08:00
回复了 Zhuzhuchenyan 创建的主题 程序员 最近写代码感觉像是憋着一口闷气在写
@iugo 嗯是的,`unknown`的确是一个在未知的情况下更好地选择

刚才打开了 https://angular.io/guide/template-typecheck#strict-mode, 一个 Angular 9 才引入的严格模板类型检查,同事那样的代码无法通过编译,会提示 Type 'string' is not assignable to type 'boolean'.ngtsc(2322)

Fine, 得过且过吧,也算是学会了新用法,严格模式开是不可能开的,之前代码里太多魔法了
2021-02-19 18:03:47 +08:00
回复了 Zhuzhuchenyan 创建的主题 程序员 最近写代码感觉像是憋着一口闷气在写
@siteshen 没事,只要是中肯的讨论我觉得没必要去顾虑合适不合适。

心情需要排解,问题也需要去面对。

再次感谢各位的建议
2021-02-19 14:57:44 +08:00
回复了 Zhuzhuchenyan 创建的主题 程序员 最近写代码感觉像是憋着一口闷气在写
感谢各位,哎这件事情上可能和节后焦虑也有关系,让我当时有点钻牛角尖了,在没有一个既定规范的时候,还是要尊重他们写代码的方式

毕竟公司的重心还是在做游戏上,对我们这种边缘支持部门的技术投入不是很重视,哎习惯了就好

可能是我太憧憬上头有一个管事的了,我理解这可能会带来更多矛盾,不过我总是以为望而不得的东西是好的
2021-02-03 20:14:56 +08:00
回复了 Zhuzhuchenyan 创建的主题 MacBook Pro 49 年入国军,这个时间点购入了一台 16 寸 mbp
@xing7673 Rider 带来的 Resharper 体验用习惯了就回不去了。

况且.net5 目前也是要转译才能工作,作为工作环境的话不考虑。
2021-02-02 23:57:45 +08:00
回复了 siagasky 创建的主题 Apple 求问一个关于 apple care +的问题
大陆买的 Apple care+的 mbp13 可以在法国使用,且如一楼所说,不需要负那个额定的意外服务费
2021-02-02 18:46:01 +08:00
回复了 Zhuzhuchenyan 创建的主题 MacBook Pro 49 年入国军,这个时间点购入了一台 16 寸 mbp
@GreyChou 可能用习惯了

我先深度体验下 Big Sur 再决定吧,目前查到的问题包括我的垃圾扩展坞的网卡驱动可能不会在 Big Sur 上提供,希望我运气好能找到新版本驱动
2021-02-02 17:01:57 +08:00
回复了 Zhuzhuchenyan 创建的主题 MacBook Pro 49 年入国军,这个时间点购入了一台 16 寸 mbp
@18115692244 感觉维修等待的时间更长了。之前换 iphone 电池让我等了一周。
2021-02-02 16:36:16 +08:00
回复了 Zhuzhuchenyan 创建的主题 MacBook Pro 49 年入国军,这个时间点购入了一台 16 寸 mbp
@cuff 那是相当的贵,我买的配置 i9 1T 32 5500 4G 折算下来比国内官网贵 5000 人民币,这还不算国内还有种种渠道比官网便宜

@hello2060 如果去办公室的话还是用台式机比较多,这不疫情在家用自己电脑干活比较顺手
2021-02-01 23:52:47 +08:00
回复了 Zhuzhuchenyan 创建的主题 MacBook Pro 49 年入国军,这个时间点购入了一台 16 寸 mbp
感谢各位,有点被安慰的感觉。

qwerty 毕竟是个人偏好,既然能定制还是希望可以一步到位。
2021-01-20 02:14:32 +08:00
回复了 Zhuzhuchenyan 创建的主题 问与答 关于 TCP 传输发送包的策略的一个问题
感谢各位,那我还是维持原状比较好。

@djoiwhud 不是给公司搞的,自己做的小项目,我本职是前端程序员,对网络特性也是在边翻书边学的状态。
2021-01-05 17:15:46 +08:00
回复了 guangyaomiao 创建的主题 程序员 在职级对标网站里统计了一下大厂工作时长
很棒的分享网站,推荐给其他朋友了。
跟他们说,不要多看,容易做梦
2021-01-05 00:51:55 +08:00
回复了 noble4cc 创建的主题 问与答 滑雪是消费主义陷阱吗?
也分目的吧,

前年被基友带入坑,到现在为止三个雪季已经滑了 20 天+

个人感觉滑雪是为了挑战自己吧,之前一直有恐高症,现在红道也能胆战心惊下来了。而且滑雪的消费相比其他极限运动算是比较亲民了吧。
2020-12-31 19:37:24 +08:00
回复了 cwz346852114 创建的主题 问与答 js 原型与原型链继承的关系有点没懂
帮你分析下
> class Person {}
> class Child extends Person {test(){}}

> Child.prototype.hasOwnProperty('test')
True

> let aChild = new Child()
> aChild.__proto__ === Child.prototype
True

> aChild.__proto__.__proto__ === Person.prototype
True

这才是这根原型链的本来面貌,更具体的,对 Person 的实例化对象而言
> let aPerson = new Person()
> aPerson.__proto__ === Person.prototype
True

aPerson 的原型链中跳过了一个环节,将 Child.prototype 跳过了,从而 aPerson 中的原型链中不可能有 test 方法。
扩展阅读
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Inheritance_and_the_prototype_chain
1  2  3  4  5  6  7  8  9  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2965 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 40ms · UTC 08:03 · PVG 16:03 · LAX 01:03 · JFK 04:03
Developed with CodeLauncher
♥ Do have faith in what you're doing.