如何在使用我的配置文件模型中的字段创建实例时在 Django 表单中预填充字段。假设我的个人资料模型有 Charfield
住所,并且在注册中我将某个用户的住所命名为“开罗”,我想知道如何填写表格说 PostCreateForm
并让用户的住所自动填充开罗并使其不可编辑。这样,如果表单要求提供帖子所有者的帖子正文和住所,则该登录用户将能够仅输入帖子正文详细信息,并且在帖子详细信息视图中,他可以查看其住所附有的帖子他们。
我已经尝试按照文档实施 form = PostForm(initial={"residence": "Cairo"})
类型的方法,但我仍然弄错了。
我在我的视图和表单定义中尝试过,但似乎我做错了。
我需要关于如何在 CreateView
的获取请求或在 forms.py 模型定义中实现这一点的帮助。
任何帮助将不胜感激。
下面是我的 views.py
代码
class PostCreateView(CreateView):
template_name = 'posts/post_create.html'
model = Post
form_class = PostCreateForm
initial = {'key': 'value'}
def get(self, request, *args, **kwargs):
form = self.form_class(initial=self.initial)
context = {'form': form}
return render(request, self.template_name, context)
def post(self, request, *args, **kwargs):
form = self.form_class(request.POST)
if form.is_valid():
instance = form.save(commit=False)
instance.profile = request.user.profile
instance.save()
return redirect(reverse('posts:all_posts'))
else: # return form
form = PostCreateForm(request.POST)
return render(request, self.template_name, {'form': form, })