作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有两个模型
class Friend(models.Model):
me = models.ForeignKey(User)
friend = models.ForeignKey(User)
remark = models.CharField(max_length=15)
def __unicode__(self):
return self.remark
class Message(models.Model):
from_user = models.ForeignKey(User)
to_user = models.ForeignKey(User)
...
我为消息制作了一个表单
class MessageForm(ModelForm):
class Meta:
model = Message
但是当我在 html 中显示表单时,我希望我仅通过“备注”(在 friend 模型中)显示 to_user 的选择列表
我重写了 MessageForm 的 init 方法,如下所示:
class MessageForm(ModelForm):
class Meta:
model = Message
def __init__(self,*args,**kwargs):
super(MessageForm, self).__init__(*args,**kwargs)
init = kwargs.get('initial')
if init:
if 'from_user' in init:
me = init['from_user']
self.fields['to_user'].queryset = Friend.objects.filter(me=me)
当数据发布时,form.is_valid() 引发错误:无法分配“”:“Message.to_user”必须是“用户”实例。
所以我想在调用 is_valid() 之前更改 self.fields['to_user'] 的值,例如:
def is_valid(self):
# do something to fix the problem
super(MessageForm, self).is_valid()
最佳答案
is_valid()
调用表单的 clean()
方法,所以把你的 hack 放在那里:
def clean(self):
# hack hack hack, operating on self.cleaned_data
return self.cleaned_data
关于django - 如何更改方法 is_valid() 中的表单字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8627165/
我尝试通过正则表达式将文本中的单引号更改为双引号。 (单字)示例:我走了。 You gona fly to planet 'Ziqtos' => 我需要在 I'm 中保留单引号,并在 You gona
我正在构建一个 API,其中大部分将包含 JSON 和 HTML 内容。但是一些非常具体的端点只呈现 true 或 false,并且还在 POST 中接受 true 或 false。这是请求或响应的整
我是一名优秀的程序员,十分优秀!