如何在Django中实现复选框

时间:2019-11-21 07:35:30

标签: django

我有一个基于PC的gui应用程序,我试图在使用django的基于浏览器的解决方案中复制相同的功能。在PC上,我有一个复选框,可为用户启用其他功能。我需要做的就是选中此框后返回值(True或False),这将改变视图模块中的逻辑。

我已将复选框实现为:

<form method='post'>
    <input type="checkbox" name="use_stages" value="use_stages">Use stages
</form>

该复选框出现在浏览器中,但不允许我进行检查。

我看过django表格,但是对于这样一个简单的要求,这似乎有点过头了。我必须走那条路线吗?

我不愿嫁给一个复选框。也许有一个按钮会随着用户单击而切换文本。

有人可以建议我从这里继续吗?

这是模板的代码:

from django.shortcuts import render

def home(request):
    """Home page."""
    context = {}
    url = 'boards/home.html'
    return render(request, url, context)

解决方案

要扩大下面的sandeep答案,现在这是模板中的代码:

<form method='post'>
    {% csrf_token %}
    <input type="checkbox" name="use_stages" {% if use_stages %} checked="checked"{% endif %} value= "1">Use stages
    <input type="submit" value="submit">
</form>

这是在视图中:

def my_url(request):
    context = <get context dict from somewhere>
    if request.method == 'POST':
        use_stages = request.POST.get('use_stages', 0)
        context['use_stages'] = use_stages == '1'
    url = 'boards/main_screen.html'
return render(request, url, context)

2 个答案:

答案 0 :(得分:1)

您可以这样做。

在模板中:

def home(request):
    if request.method == 'POST':
        check = request.POST.get('use_stages', 0)
        print(check) # 1 (True) or 0 (False)

    context = {

    }
    url = 'boards/home.html'
    return render(request, url, context)

views.py

public class Experience:BaseEntity
{
    public virtual string Name { get; set; }
    public virtual string Description { get; set; }
    public virtual DateTime? CreationDate { get; set; }
    public virtual string City { get; set; }
    public virtual int Price { get; set; }
    public Currency Currency { get; set; }
    public virtual int Rating { get; set; }
    public virtual double? Lat { get; set; }
    public virtual double? Lng { get; set; }
    public virtual DateTime? CompleteDate { get; set; }
    public virtual string CoverPic { get; set; }
    public virtual string Images { get; set; }
    public virtual string BroadcastingType { get; set; }
    public virtual bool IsActive { get; set; }
    public virtual bool IsFinished { get; set; }
    public virtual bool IsConfirmed { get; set; }
    public virtual int CountryId { get; set; }
    [ForeignKey("CountryId")]
    public virtual Country Country { get; set; }
    public virtual string UserId { get; set; }
    [ForeignKey("UserId")]
    public virtual AppUser IdentityUser { get; set; }


    public virtual ICollection<Proposals.Proposals> Proposals { get; set; }
    public virtual ICollection<Comments.Comments> Comments { get; set; }
}

如果复选框为check,则check的值为1,否则为0。您可以将其用作True(1)或False(0)

答案 1 :(得分:0)

在Models.py文件中,您可以使用BooleanField添加属性 例如:特征=模型。 BooleanField(default = False) 这将显示一个复选框,默认值为未选中