She*_*009 5 python forms django autosave
我需要一些帮助.
在我的models.py中,我有一个Note表.我想要对此表做的是创建一个表单,用户可以在文本字段中为特定客户端输入一些注释.
models.py
class Note(models.Model):
client = models.ForeignKey(Client)
datetime = models.DateTimeField(default=datetime.now)
user = models.ForeignKey(User)
note = models.TextField()
def __unicode__(self):
return unicode(self.user)
Run Code Online (Sandbox Code Playgroud)
现在,当用户输入注释时,他们应该只看到注释文本字段.表单提交后,表单应自动将日期+时间保存到时间和日期.我好像在用户字段.提交表单后,经过身份验证的用户应自动保存.我不确定你怎么能这样做.我也想自动保存客户端,以便您可以访问客户端页面(r'^clients/(?P<client_id>\d+)/$', views.get_client),从该客户端自动保存.
这是我在forms.py中写的内容
forms.py
class NoteForm(forms.ModelForm):
class Meta:
model = models.Note
exclude = ('client','user','datetime')
Run Code Online (Sandbox Code Playgroud)
在这里我的观点也是如此.
Views.py
def add_notes(request, client_id):
client = models.Client.objects.get(pk = client_id)
notes = client.note_set.all()
if request.method == 'POST':
form = forms.NoteForm(request.POST)
if form.is_valid():
form.save(True)
request.user.message_set.create(message = "Note is successfully added.")
return HttpResponse("<script language=\"javascript\" type=\"text/javascript\">window.opener.location = window.opener.location; window.close();</script>")
else:
form = forms.NoteForm()
return render_to_response('note_form.html', {'form':form, 'client':client,'notes':notes}, context_instance = RequestContext(request))
Run Code Online (Sandbox Code Playgroud)
class NoteForm(forms.ModelForm):
class Meta:
model = models.Note
exclude = ('client','user','datetime')
def __init__(self, client, user, *args, **kwargs):
self.client = client
self.user = user
super(NoteForm, self).__init__(*args, **kwargs)
def save(self):
note = super(NoteForm, self).save(commit=False)
note.user = self.user
note.client = self.client
note.save()
return note
Run Code Online (Sandbox Code Playgroud)
在视图中:
form = forms.NoteForm(client, request.user, request.POST)
Run Code Online (Sandbox Code Playgroud)
if form.is_valid():
note = form.save(commit=False)
note.user = request.user
note.client = client
note.save()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4090 次 |
| 最近记录: |