Django 1.8 设置存在更新表单的默认值
Posted
技术标签:
【中文标题】Django 1.8 设置存在更新表单的默认值【英文标题】:Django 1.8 set exist default value of Update form 【发布时间】:2015-07-12 15:17:40 【问题描述】:我写了模板
<div class="container">
<form action="" method="post">
% csrf_token %
form.as_p
<input type="submit">
</form>
</div>
而且,我的视图在下面
class UserProfileUpdateView(UpdateView):
model = UserProfile
form_class = UserProfileUpdateForm
template_name_suffix = '_update_form'
下面是我的 UserProfile 模型。 它使用用户密钥
class UserProfile(models.Model):
# This line is required. Links UserProfile to a User model instance.
user = models.OneToOneField(User)
# The additional attributes we wish to include.
website = models.URLField(blank=True, verbose_name=u'Webサイト')
picture = models.ImageField(
upload_to='uploads/profile_images/%Y/%m/%d', blank=True,
null=True, verbose_name=u'Image'
)
age = models.IntegerField(verbose_name=u'Age')
country = models.CharField(max_length=30, verbose_name=u'country')
profile = models.CharField(max_length=300, verbose_name=u'profile')
address = models.CharField(max_length=300, verbose_name=u'address')
GENDER_CHOICES = (
(u'M', u'Male'),
(u'F', u'Female'),
)
gender = models.CharField(max_length=2, choices=GENDER_CHOICES, verbose_name=u'Gender')
CATEGORY_CHOICES = (
(u'U', u'u'),
(u'R', u'r'),
)
category = models.CharField(max_length=2, choices=CATEGORY_CHOICES, verbose_name=u'category')
last_accessed = models.DateTimeField()
我的表格是
class UserProfileUpdateForm(forms.ModelForm):
slug_field = 'user_slug'
class Meta:
model = UserProfile
fields = (
'address', 'profile', 'gender', 'category',
'age',
'website', 'picture',
)
但是,我的表单无法填写之前已经设置的默认值。
你能告诉我为什么不设置吗?
【问题讨论】:
你能发布你的模型吗? 感谢您的回复。我添加了我的模型 【参考方案1】:你应该看看这个:Django: using ModelForm to edit existing database entry
关键是:
form = MyModelForm(instance=MyModel.objects.get(pk=some_id))
【讨论】:
以上是关于Django 1.8 设置存在更新表单的默认值的主要内容,如果未能解决你的问题,请参考以下文章