gpt4 book ai didi

python - 我可以给这个 Django 表单一个作者吗?

转载 作者:太空宇宙 更新时间:2023-11-03 18:33:13 24 4
gpt4 key购买 nike

我对 Django 还很陌生,我需要帮助获取此“表单”以获取当前登录用户的用户 ID。

这是我的 forms.py:

from django import forms
from models import Entry


class EntryForm(forms.ModelForm):

class Meta:
model = Entry
fields = ('title', 'body', 'thumbnail')

我找不到任何关于这种表单实现的文档,特别是“fields”变量如何工作。

我可以通过添加这样的作者来让这个工作正常进行:

  fields = ('title', 'body', 'thumbnail', 'author')

这几乎是我所需要的,除了这只会添加每个注册用户的下拉列表。

我怎样才能在 Django 中做这样的事情?

from django import forms
from models import Entry
from django.contrib.auth.models import User

class EntryForm(forms.ModelForm):

class Meta:
model = Entry
fields = ('title', 'body', 'thumbnail')
fields.author = request.user.username # <-- SEEMS TO NOT DO ANYTHING

或者相反,我如何将其编码到views.py中?

def create(request):
if request.POST:
form = EntryForm(request.POST, request.FILES)
if form.is_valid():
form.author = request.user.id # <-- SEEMS TO NOT DO ANYTHING
form.save()

return HttpResponseRedirect('/weblog')

else:
form = EntryForm()

args = {}
args.update(csrf(request))

args['form'] = form

return render_to_response('coltrane/newpost.html', args)

最佳答案

您需要在实例上设置作者,这是 form.save() 的结果,而不是在表单上。

if form.is_valid():
obj = form.save(commit=False)
obj.author = request.user
obj.save()

请注意,您的第一次尝试将给出 NameError 异常(因为 request 未在该范围内定义)。

关于python - 我可以给这个 Django 表单一个作者吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22054866/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com