我正在运行 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 的问题上。我想在后台设置这个字段。任何提示?
最佳答案
你可以这样做:
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/