gpt4 book ai didi

Django:如何在通用创建 View 上设置隐藏字段?

转载 作者:行者123 更新时间:2023-12-03 15:08:19 24 4
gpt4 key购买 nike

我正在运行 Django 1.6.x

为了扩展我的用户,我添加了另一个存储数据的模型:

class UserProfile (models.Model):
user = models.ForeignKey(User)
height = models.IntegerField(blank=True, null=True)

现在我想添加一个 View ,它允许用户在那里添加自己的信息。开始于 django.views.generic.edit.CreateView ,但还想至少提供一个编辑/更新。

所以我添加了导入并创建了一个 View :
from django.views.generic.edit import CreateView, UpdateView
# ....
class UserProfileCreateView(CreateView):
model = UserProfile
fields = ['height']

我还在 urls.py 中添加了条目:
    url(r'^userprofile/new/$', login_required(UserProfileCreateView.as_view()), name="add_userprofile")

但是现在我被困在如何以正确的方式分配用户 ID 的问题上。我想在后台设置这个字段。任何提示?

最佳答案

你可以这样做:

  • 从请求对象中获取用户。
  • 覆盖 UserProfileCreateView 类上的 form_valid 方法,
  • 将用户附加到表单实例并保存。
  • class UserProfileCreateView(CreateView):
    model = UserProfile
    fields = ['height']

    def form_valid(self, form):
    user = self.request.user
    form.instance.user = user
    return super(UserProfileCreateView, self).form_valid(form)

    此代码适用于 Python 2.7.x

    关于Django:如何在通用创建 View 上设置隐藏字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21652073/

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