Python, Django, HTMX, возможно ли сохранить данные, когда пользователь нажимает <button>
Когда пользователь нажимает <кнопку> на индексной странице, может ли он сразу сохранить данные?
views.py
def index(request):
...
...
context = { ... }
response = render(request, 'docu/index.html', context)
### Save visitors' IP and Keywords to KeyLOG table ###
ip = request.META.get('REMOTE_ADDR')
keywords = request.META.get('HTTP_REFERER', '')
keylog = KeylogForm(request.GET)
keylog = keylog.save(commit=False)
keylog.ipaddr = ip
keylog.keyquery = keywords
keylog.svae()
return response
def keylog(request):
if request.method == "GET":
keylog_list = list(Keylog.objects.all().order_by()\
.values('idpaddr', 'keywords', 'tel_log', 'regtime'))
return JsonResponse(keylog_list, safe=False)
return JsonResponse({'message':'error'})
forms.py
class KeylogForm(forms.ModelForm):
class Meta:
model = Keylog
fields = ['ipaddr','keyquery','tel_log']
models.py
class Keylog(models.Model):
ipaddr = models.CharField(max_length=32,null=True, blank=True) #save IP addr
keyquery = models.CharField(max_length=128,null=True, blank=True) #save keywords
tel_log = models.CharField(max_length=256,null=True, blank=True) #save tel_log
regtime = models.DateTimeField(auto_now_add=True) #created time
В настоящее время таблица выглядит следующим образом;
Ipaddr | keyquery | tel_log | regtime |
---|---|---|---|
192.168.x.yy | ?query=apple | 2023.01.01.12.24.56 | |
192.168.a.bb | ?query=banana | 2023.01.01.11.22.33 |
Я надеюсь сохранить данные Tel_log в вышеуказанной таблице, когда пользователь нажимает <кнопку>...</button>.
Поэтому я сделал index.html как показано ниже;
index.html
<div id="tel_log">
<button class="btn btn-danger">
hx-get="keylog/"
hx-vals="[tel_log='CALL']"
hx-trigger="click">
Phone NUMBER
</button>
</div>
Мое ожидание заключается в том, что когда я нажимаю [НОМЕР ТЕЛЕФОНА] на индексной странице, "CALL" появляется в колонке "tel_log" вышеуказанной таблицы, но это не работает, просто показывает {message:error}
Я новичок в программировании, поэтому мой подход для моих нужд может быть неправильным, но мне очень хочется сделать сайт, особенно по этому вопросу. Я также пытался использовать Ajax, но не получил никакого ответа.
Спасибо за все.
Нажмите [кнопку], сохраните данные в реальном времени в столбце таблицы.