JQuery Джанго Баттон - PullRequest
       1

JQuery Джанго Баттон

0 голосов
/ 25 августа 2010

Я хотел бы создать кнопку, которая записывает дату и время в браузере, когда пользователь щелкает ее, а затем отправляет эту информацию в django db.

1.db part: Будет ли поле db Iсохранить его, чтобы лучше всего быть DateTimeField () или CharField ()?Я хочу точную дату и время нажатия этой кнопки?

Часть jQuery: я слышал (здесь), что jQuery может выполнить запись точного времени нажатия кнопки.Я не знаком с jQuery и имею основы в javascript.Но я хотел бы знать, почему / как jquery и / или javascript могут записывать, когда пользователь щелкает, а в django это происходит, когда сервер получает информацию.

Я бы хотелчтобы иметь возможность записывать все виды поведения кликов в браузере и, следовательно, мой вопрос.

Также, если кто-нибудь может дать мне примерный обход.Это было бы максимум.

Спасибо!

1 Ответ

1 голос
/ 25 августа 2010

DateTimeField будет (намного) лучшим выбором, чем CharField.Вы можете определить модель, подобную этой:

class ButtonClick(models.Model):
    clicked_on = models.DateTimeField()

Вы можете определить представление, которое создает экземпляр этой модели и сохраняет его при вызове.здесь используется ModelForm.

class ButtonClickForm(forms.ModelForm):
    class Meta:
        model = ButtonClick

def record_button_click(request, *args, **kwargs):
    if request.is_ajax() and request.method == 'POST':
        form = ButtonClickForm(request.POST.copy())
        if form.is_valid():
            instance = form.save()
            return render_to_response(... XML snippet indicating success ...)

    else:
        # Return invalid request? This depends on your scenario.

Теперь наступает интересная часть - вызов этого представления из вашего браузера.Следующий фрагмент является примером того, как это сделать. Предупреждение : Мои знания jQuery очень ограничены.Фрагмент может содержать ошибки и / или могут быть лучшие способы сделать это.

function on_button_click(date) {
    $.ajax({
      url: 'app/record_button_click/',
      data: "date=" + date.toString(), // Use appropriate formatting option.
      success: function(data) {
        alert('Button click recorded.');
      }
    });
}

<button onClick="return on_button_click(new Date());" ../>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...