Формы Django хотят автоматически сохранять пользователя, клиента и datetime

Мне нужна помощь.

В моем 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)

Теперь, когда пользователь вводит заметку, они должны только см. Текстовое поле примечания. После того, как форма была отправлена, она должна автоматически сохранять дату + время, когда это когда-либо было. Кажется, у меня с полем пользователя. После отправки формы аутентифицированный пользователь должен быть автоматически сохранен. Я не совсем уверен, как вы можете это сделать. Я также хочу автоматически сохранять клиента, чтобы какая-либо страница клиента была у вас на (r '^ clients / (? P \ d +) / $', views.get_client) , auto -save от этого клиента.

Вот что я написал в моем forms.py

forms.py

class NoteForm(forms.ModelForm):
    class Meta:
        model = models.Note
        exclude = ('client','user','datetime')

И здесь также мои взгляды.

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))
5
задан Shehzad009 20 June 2011 в 13:20
поделиться