django - 在 Django 的管理 formfield_for_foreignkey 中设置表单字段的初始值
问题描述
我的 Django 管理员中有以下代码:
def formfield_for_foreignkey(self, db_field, request, **kwargs):
if db_field.name == 'affected_user':
kwargs['initial'] = request.user.id
return super().formfield_for_foreignkey(db_field, request, **kwargs)
模型中的affected_user
字段如下所示:
affected_user = models.ForeignKey(User, on_delete=models.CASCADE)
我想从中得到的是affected_user
分配了特定的初始值。不幸的是,它似乎不起作用,因为我从表中获取第一条记录作为初始值,而请求的用户在中间有 ID。
有人可以解释这是为什么吗?我可以肯定的是,它正确地输入了这个 if 语句。但不保留我的初始值。
解决方案
def get_changeform_initial_data(self, request):
return {'affected_user': request.user}
推荐阅读
- rspec - RSpec中的'it'和'example'有什么区别?
- c# - GCM - Android 推送通知 - MismatchSenderId 错误
- php - 在PHP中的坐标数组之间找到两个最远的对象
- java - ResultSet getDouble() 检查 EMPTY 值
- asp.net-core - 带有时间指示器问题的 ASP.Net Core API DateTime
- windows - 需要从文本文件中表的列中提取唯一值
- python - 为什么我的学位论点表现得很奇怪?
- java - PositionIncrement 的正确使用
- sql-server - SQL express edition 2014 中的计划将数据从 DB 传输到 DB
- regex - 该模式在输入数字中不起作用?