簡體   English   中英

添加沒有表單-僅按鈕的Django模型實例

[英]Adding a django model instance without a form -> button only

我想在不使用表單的情況下添加模型實例。

我的目標是向包含當前時間和經過身份驗證的用戶名的模型添加實例。

到目前為止,我有模型:

from django.contrib.auth.models import User
class Zeit(models.Model):
    user = models.ForeignKey(User)
    time = models.DateTimeField(auto_now=False, auto_now_add=True)

和視圖(因為我嘗試通過model.form添加,所以幾乎是空的):

@login_required
def stamper_login(request):
    #form = ZeitForm(request.POST or None)
    print(request.POST)
    context = {
    }
    return render(request, 'stamper_login.html', context)

如何配置模板和視圖,使其可以將數據發送到視圖?

TY尋求幫助=)

好的,我所需要的是以下內容。 它將向視圖發送一個空的POST請求,然后該視圖使用當前登錄的用戶創建一個實例。 我的用例不需要Ajax,但是我還是會研究它。

模板:

<form method="post" action="">{% csrf_token %}
<button type="submit">Click Me!</button>

視圖:

@login_required
def stamper_login(request):

#form = ZeitForm(request.POST or None)
if request.method == 'POST':
    instance = Zeit(user=request.user)
    instance.save()
    print(instance)
    print(instance.user)
    print(request.POST)
context = {
}

return render(request, 'stamper_login.html', context)

准系統代碼:

模板。 我沒有為此編寫HTML,但是我已經編寫了其中的基本Jquery部分

$(document).ready(function(){
    $('#button').on('click', function(){
        $.ajax({
            url: 'path/to/your/view',
            method: 'POST'
        }).done(function(){
            //Do something
        })
    })
})

Views.py

# Assuming the user is already logged in but you can write some code to handle anonymous users
def handle_ajax(request):
    # I've not written code to handle anonymous users
    user = User.objects.get(pk=request.user.id)
    zeit = Zeit(user=user) 
    zeit.save()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM