python-无法将关键字“ i”解析为字段.选项包括:id,joind_on,user,user_id
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python-无法将关键字“ i”解析为字段.选项包括:id,joind_on,user,user_id,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4332字,纯文字阅读大概需要7分钟。
内容图文
我不明白我在做什么错.我正在尝试通过表单更新模型,而且我一直在在线上关注教程,他们都指向获取“ id”的方向.我已经做到了,但是我一直收到这个错误:
Cannot resolve keyword ‘i’ into field. Choices are: id, joined_on, user, user_id
id键在那里,但他认为我要的是“ i”.
任何想法?
view.py
def testRegistration(request):
id = UserProfileModel.objects.get('id')
user_status_form = UserDetailsForm(request.POST or None, instance=id)
if request.method == 'POST':
if user_status_form.is_valid():
user_status = user_status_form.save(commit=False)
user_status.user = get_user(request)
user_status.save()
user_status_form = UserDetailsForm()
else:
user_status_form = UserDetailsForm()
return HttpResponseRedirect('testRegistration')
return render(
request, 'registrationTest.html',
{'user_status_form' : user_status_form,
}
)
模型
class UserProfileModel(models.Model):
user = models.OneToOneField(User, unique=True)
joined_on = models.DateTimeField(auto_now=True, null=True)
追溯环境:
Request Method: GET
Request URL: http://127.0.0.1:8000/testRegistration
Django Version: 1.10.5
Python Version: 3.5.2
Installed Applications:
['django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware']
追溯:
File "/Applications/anaconda/lib/python3.5/site-packages/django/core/handlers/exception.py" in inner
39. response = get_response(request)
File "/Applications/anaconda/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response
187. response = self.process_exception_by_middleware(e, request)
File "/Applications/anaconda/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response
185. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/Users/xxx/xxx/xxx/app/views.py" in testRegistration
88. id = UserProfileModel.objects.get('id')
File "/Applications/anaconda/lib/python3.5/site-packages/django/db/models/manager.py" in manager_method
85. return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/Applications/anaconda/lib/python3.5/site-packages/django/db/models/query.py" in get
376. clone = self.filter(*args, **kwargs)
File "/Applications/anaconda/lib/python3.5/site-packages/django/db/models/query.py" in filter
796. return self._filter_or_exclude(False, *args, **kwargs)
File "/Applications/anaconda/lib/python3.5/site-packages/django/db/models/query.py" in _filter_or_exclude
814. clone.query.add_q(Q(*args, **kwargs))
File "/Applications/anaconda/lib/python3.5/site-packages/django/db/models/sql/query.py" in add_q
1227. clause, _ = self._add_q(q_object, self.used_aliases)
File "/Applications/anaconda/lib/python3.5/site-packages/django/db/models/sql/query.py" in _add_q
1253. allow_joins=allow_joins, split_subq=split_subq,
File "/Applications/anaconda/lib/python3.5/site-packages/django/db/models/sql/query.py" in build_filter
1133. lookups, parts, reffed_expression = self.solve_lookup_type(arg)
File "/Applications/anaconda/lib/python3.5/site-packages/django/db/models/sql/query.py" in solve_lookup_type
1019. _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta())
File "/Applications/anaconda/lib/python3.5/site-packages/django/db/models/sql/query.py" in names_to_path
1327. "Choices are: %s" % (name, ", ".join(available)))
Exception Type: FieldError at /testRegistration
Exception Value: Cannot resolve keyword 'i' into field. Choices are: id, joined_on, user, user_id
解决方法:
您认为此行存在错误,
id = UserProfileModel.objects.get('id')
用这样的东西代替它,
id = UserProfileModel.objects.get(user__username=request.user.username)
objects.get方法将field_names和value作为关键字参数,并返回具有匹配条件的对象.
从您的角度来看,我想您想获取当前登录用户的UserProfile的ID.为此,您需要访问用户字段的ID(用户的ForeignKey)并将其与当前用户(request.user)进行匹配.
内容总结
以上是互联网集市为您收集整理的python-无法将关键字“ i”解析为字段.选项包括:id,joind_on,user,user_id全部内容,希望文章能够帮你解决python-无法将关键字“ i”解析为字段.选项包括:id,joind_on,user,user_id所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。